[ Index ] WAROFGENERALS

PHP Cross Reference of WAROFGENERALS MODS SOURCES

title

Body

[close]

/Command and conquer Heure H/Light of five stars/INI/Object/ -> GLAVehicle.ini (source)

   1  
   2  ;------------------------------------------------------------------------------
   3  Object GLATankScorpion
   4  
   5    ; *** ART Parameters ***
   6    SelectPortrait         = SUScorpion_L
   7    ButtonImage            = SUScorpion
   8    
   9    UpgradeCameo1 = Upgrade_GLAScorpionRocket
  10    UpgradeCameo2 = Upgrade_GLAAPRockets
  11    UpgradeCameo3 = Upgrade_GLAToxinShells
  12    UpgradeCameo4 = Upgrade_GLAJunkRepair
  13    ;UpgradeCameo5 = NONE
  14    
  15    Draw = W3DTankDraw ModuleTag_01
  16      OkToChangeModelColor = Yes
  17  
  18      ProjectileBoneFeedbackEnabledSlots = SECONDARY ; WeaponLaunchBone will be shown/hidden, not just used for firing offset
  19   
  20  ; ------------ Normal  
  21      DefaultConditionState
  22        Model = UVLiteTank
  23        Turret = Turret ; Logic twist bone is always this, both turrets are subobjects of it, as are both missile racks
  24        ; note, order-dependent: we must hide/show Missile AFTER we hide/show MissileRack!
  25        ShowSubObject = Turret01
  26        HideSubObject = MissleRack01 MissleRack02 TurretUP01; MissileRack misspelled in the Art
  27        WeaponFireFXBone = PRIMARY Muzzle
  28        WeaponRecoilBone = PRIMARY Barrel
  29        WeaponMuzzleFlash = PRIMARY MuzzleFX
  30        WeaponLaunchBone = PRIMARY Muzzle
  31      End
  32  
  33      ConditionState = REALLYDAMAGED
  34        Model = UVLiteTank_d
  35      End
  36      AliasConditionState = RUBBLE
  37      
  38  ; ------------ With big turret  
  39      ConditionState = WEAPONSET_CRATEUPGRADE_ONE ; one or two crates is a turret switch
  40        ShowSubObject = TurretUP01
  41        HideSubObject = MissleRack01 MissleRack02 Turret01   ; MissileRack misspelled in the Art
  42      End
  43      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO
  44  
  45      ConditionState = WEAPONSET_CRATEUPGRADE_ONE REALLYDAMAGED
  46        Model = UVLiteTank_d
  47        ShowSubObject = TurretUP01
  48        HideSubObject = MissleRack01 MissleRack02 Turret01   ; MissileRack misspelled in the Art
  49      End
  50      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO REALLYDAMAGED
  51  
  52  ; ---------- With missile
  53      ConditionState = WEAPONSET_PLAYER_UPGRADE
  54        ShowSubObject = MissleRack01 Turret01
  55        HideSubObject = MissleRack02 TurretUP01; MissileRack misspelled in the Art
  56        WeaponFireFXBone = SECONDARY WeaponA
  57        WeaponLaunchBone = SECONDARY WeaponA
  58      End
  59  
  60      ConditionState = WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED
  61        Model = UVLiteTank_d
  62        ShowSubObject = MissleRack01 Turret01
  63        HideSubObject = MissleRack02 TurretUP01; MissileRack misspelled in the Art
  64        WeaponFireFXBone = SECONDARY WeaponA
  65        WeaponLaunchBone = SECONDARY WeaponA
  66      End
  67  
  68  ; ---------- With missile and big turret
  69      ConditionState = WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_ONE
  70        ShowSubObject = MissleRack01 TurretUP01
  71        HideSubObject = MissleRack02 Turret01; MissileRack misspelled in the Art
  72        WeaponFireFXBone = SECONDARY WeaponA
  73        WeaponLaunchBone = SECONDARY WeaponA
  74      End
  75  
  76      ConditionState = WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_ONE REALLYDAMAGED
  77        Model = UVLiteTank_d
  78        ShowSubObject = MissleRack01 TurretUP01
  79        HideSubObject = MissleRack02 Turret01; MissileRack misspelled in the Art
  80        WeaponFireFXBone = SECONDARY WeaponA
  81        WeaponLaunchBone = SECONDARY WeaponA
  82      End
  83  
  84  ; ---------- With two missiles and big turret
  85      ConditionState = WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_TWO
  86        ShowSubObject = MissleRack01 MissleRack02 TurretUP01
  87        HideSubObject = Turret01; MissileRack misspelled in the Art
  88        WeaponFireFXBone = SECONDARY WeaponA
  89        WeaponLaunchBone = SECONDARY WeaponA
  90      End
  91  
  92      ConditionState = WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_TWO REALLYDAMAGED
  93        Model = UVLiteTank_d
  94        ShowSubObject = MissleRack01 MissleRack02 TurretUP01
  95        HideSubObject = Turret01; MissileRack misspelled in the Art
  96        WeaponFireFXBone = SECONDARY WeaponA
  97        WeaponLaunchBone = SECONDARY WeaponA
  98      End
  99  
 100      TrackMarks = EXTnkTrack.tga
 101      TreadAnimationRate      = 2.0  ; amount of tread texture to move per second
 102    End
 103  
 104    ; ***DESIGN parameters ***
 105    DisplayName           = OBJECT:Scorpion
 106    Side                  = GLA
 107    EditorSorting         = VEHICLE
 108    TransportSlotCount    = 3                 ;how many "slots" we take in a transport (0 == not transportable)
 109  
 110    WeaponSet
 111      Conditions = None 
 112      Weapon = PRIMARY ScorpionTankGun
 113      Weapon = SECONDARY None
 114    End
 115    WeaponSet
 116      Conditions = PLAYER_UPGRADE 
 117      Weapon = PRIMARY ScorpionTankGun
 118      Weapon = SECONDARY ScorpionMissileWeapon
 119    End
 120    WeaponSet
 121      Conditions = CRATEUPGRADE_ONE 
 122      Weapon = PRIMARY ScorpionTankGunPlusOne
 123      Weapon = SECONDARY None
 124    End
 125    WeaponSet
 126      Conditions = CRATEUPGRADE_ONE PLAYER_UPGRADE 
 127      Weapon = PRIMARY ScorpionTankGunPlusOne
 128      Weapon = SECONDARY ScorpionMissileWeapon ; No bonus at Plus One
 129    End
 130    WeaponSet
 131      Conditions = CRATEUPGRADE_TWO 
 132      Weapon = PRIMARY ScorpionTankGunPlusOne ; No further bonus at plus two
 133      Weapon = SECONDARY None
 134    End
 135    WeaponSet
 136      Conditions = CRATEUPGRADE_TWO PLAYER_UPGRADE 
 137      Weapon = PRIMARY ScorpionTankGunPlusOne ; No further bonus at plus two
 138      Weapon = SECONDARY ScorpionMissileWeaponPlusTwo
 139    End
 140  
 141    ArmorSet
 142      Conditions      = None
 143      Armor           = TankArmor
 144      DamageFX        = TankDamageFX
 145    End
 146    BuildCost       = 600
 147    BuildTime       = 7.0          ;in seconds    
 148    VisionRange     = 125
 149    ShroudClearingRange = 300
 150    Prerequisites
 151      Object = GLAArmsDealer
 152    End
 153  
 154    ExperienceValue = 60 60 120 200    ;Experience point value at each level
 155    ExperienceRequired = 0 100 200 400  ;Experience points needed to gain each level
 156    IsTrainable = Yes             ;Can gain experience
 157    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
 158    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
 159    CommandSet      = GLATankScorpionCommandSet
 160  
 161    ; *** AUDIO Parameters ***
 162    VoiceSelect = ScorpionTankVoiceSelect
 163    VoiceMove = ScorpionTankVoiceMove
 164    VoiceAttack = ScorpionTankVoiceAttack
 165    SoundMoveStart = ScorpionTankMoveStart
 166    SoundMoveStartDamaged = ScorpionTankMoveStart
 167    VoiceGuard = ScorpionTankVoiceMove
 168  
 169    UnitSpecificSounds
 170      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
 171      VoiceCreate          = ScorpionTankVoiceCreate
 172      ;TurretMoveStart = NoSound
 173      TurretMoveLoop = TurretMoveLoop
 174      VoiceEnter = ScorpionTankVoiceMove
 175    End
 176  
 177    ; *** ENGINEERING Parameters ***
 178    RadarPriority = UNIT
 179    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SALVAGER WEAPON_SALVAGER SCORE
 180  
 181    Body = ActiveBody ModuleTag_02
 182      MaxHealth       = 370.0
 183      InitialHealth   = 370.0
 184  
 185      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
 186      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
 187      SubdualDamageCap = 740
 188      SubdualDamageHealRate = 500
 189      SubdualDamageHealAmount = 50
 190    End
 191  
 192    Behavior = AIUpdateInterface ModuleTag_03
 193      Turret
 194        TurretTurnRate = 100
 195        RecenterTime = 5000   ; how long to wait during idle before recentering
 196        ControlledWeaponSlots = PRIMARY SECONDARY
 197      End
 198      AutoAcquireEnemiesWhenIdle = Yes
 199    End
 200    Locomotor = SET_NORMAL ScorpionLocomotor
 201    Behavior = PhysicsBehavior ModuleTag_04
 202      Mass = 50.0
 203    End
 204    Behavior = AutoHealBehavior ModuleTag_05
 205      HealingAmount = 2
 206      HealingDelay = 1000 ; msec
 207      TriggeredBy = Upgrade_GLAJunkRepair
 208    End
 209  
 210    ; Catch fire, and explode death
 211    Behavior = SlowDeathBehavior ModuleTag_06
 212      DeathTypes = ALL -CRUSHED -SPLATTED
 213      ProbabilityModifier = 50
 214      DestructionDelay = 2000
 215      DestructionDelayVariance = 300
 216      FX  = INITIAL  FX_CrusaderCatchFire
 217      OCL = FINAL    OCL_ScorpionTankDeathEffect 
 218      FX  = FINAL    FX_BattleMasterExplosionOneFinal
 219    End
 220  
 221    Behavior = WeaponSetUpgrade ModuleTag_07
 222      TriggeredBy = Upgrade_GLAScorpionRocket
 223    End
 224  
 225    Behavior = DestroyDie ModuleTag_09
 226      DeathTypes = NONE +CRUSHED +SPLATTED
 227    End
 228  
 229    ; A crushing defeat
 230    Behavior = FXListDie ModuleTag_10
 231      DeathTypes = NONE +CRUSHED +SPLATTED
 232      DeathFX = FX_CarCrush
 233    End
 234    Behavior = CreateObjectDie ModuleTag_11
 235      DeathTypes = NONE +CRUSHED +SPLATTED
 236      CreationList = OCL_CrusaderTank_CrushEffect
 237    End
 238    Behavior = CreateCrateDie ModuleTag_12
 239      CrateData = SalvageCrateData
 240      ;CrateData = EliteTankCrateData
 241      ;CrateData = HeroicTankCrateData
 242    End
 243    
 244    Behavior                 = TransitionDamageFX ModuleTag_13
 245      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
 246      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
 247    End
 248  
 249    Behavior = FlammableUpdate ModuleTag_21
 250      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
 251      AflameDamageAmount = 3       ; taking this much damage...
 252      AflameDamageDelay = 500       ; this often.
 253    End
 254  
 255    Geometry = BOX
 256    GeometryMajorRadius = 14.0
 257    GeometryMinorRadius = 9.0
 258    GeometryHeight = 10.5    
 259    GeometryIsSmall = Yes 
 260    Shadow = SHADOW_VOLUME   
 261    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
 262  
 263  End
 264  
 265  ;------------------------------------------------------------------------------
 266  ;GLA Rocket Buggy
 267  Object GLAVehicleRocketBuggy
 268  
 269    ; *** ART Parameters ***
 270    SelectPortrait         = SURocketBuggy_L
 271    ButtonImage            = SURocketBuggy
 272    
 273    UpgradeCameo1 = Upgrade_GLABuggyAmmo
 274    UpgradeCameo2 = Upgrade_GLAAPRockets
 275    UpgradeCameo3 = Upgrade_GLAJunkRepair
 276    ;UpgradeCameo4 = NONE
 277    ;UpgradeCameo5 = NONE
 278    
 279    Draw = W3DTruckDraw ModuleTag_01
 280      OkToChangeModelColor = Yes
 281  
 282      DefaultConditionState
 283        Model = UVRockBug
 284        Turret = Turret
 285        ShowSubObject = Turret
 286        HideSubObject = TurretUp01 
 287        WeaponFireFXBone = PRIMARY WeaponA
 288        WeaponLaunchBone = PRIMARY WeaponA
 289      End
 290      
 291      ConditionState = REALLYDAMAGED
 292        Model = UVRockBug_D
 293        Turret = Turret
 294        ShowSubObject = Turret
 295        HideSubObject = TurretUp01 
 296        WeaponFireFXBone = PRIMARY WeaponA
 297        WeaponLaunchBone = PRIMARY WeaponA
 298      End
 299      
 300      ConditionState = RUBBLE
 301        Model = UVRockBug_D
 302        Turret = Turret
 303        ShowSubObject = Turret
 304        HideSubObject = TurretUp01 
 305        WeaponFireFXBone = PRIMARY WeaponA
 306        WeaponLaunchBone = PRIMARY WeaponA
 307      End
 308  
 309      ConditionState =   WEAPONSET_PLAYER_UPGRADE
 310        Model = UVRockBug
 311        Turret = TurretUp01
 312        ShowSubObject = TurretUp01 
 313        HideSubObject = Turret
 314        WeaponFireFXBone = PRIMARY WeaponB
 315        WeaponLaunchBone = PRIMARY WeaponB
 316      End
 317      
 318      ConditionState =   WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED
 319        Model = UVRockBug_D
 320        Turret = TurretUp01
 321        ShowSubObject = TurretUp01 
 322        HideSubObject = Turret
 323        WeaponFireFXBone = PRIMARY WeaponB
 324        WeaponLaunchBone = PRIMARY WeaponB
 325      End
 326      
 327      ConditionState =   WEAPONSET_PLAYER_UPGRADE RUBBLE
 328        Model = UVRockBug_D
 329        Turret = TurretUp01
 330        ShowSubObject = TurretUp01 
 331        HideSubObject = Turret
 332        WeaponFireFXBone = PRIMARY WeaponB
 333        WeaponLaunchBone = PRIMARY WeaponB
 334      End
 335  
 336      TrackMarks = EXTireTrack.tga
 337  
 338      Dust                        = RocketBuggyDust
 339      DirtSpray                   = RocketBuggyDirtSpray
 340      PowerslideSpray             = RocketBuggyDirtPowerSlide
 341  
 342      ; These parameters are only used if the model has a separate suspension, 
 343      ; and the locomotor has HasSuspension = Yes.
 344      LeftFrontTireBone           = Tire01
 345      RightFrontTireBone          = Tire02
 346      LeftRearTireBone            = Tire03
 347      RightRearTireBone           = Tire04
 348      TireRotationMultiplier      = 0.2   ; this * speed = rotation.
 349      PowerslideRotationAddition  = 2.5   ; This speed is added to the rotation speed when powersliding.
 350  
 351    End
 352  
 353    ; ***DESIGN parameters ***
 354    DisplayName         = OBJECT:RocketBuggy
 355    Side                = GLA
 356    EditorSorting       = VEHICLE
 357    TransportSlotCount  = 3                 ;how many "slots" we take in a transport (0 == not transportable)
 358    WeaponSet
 359      Conditions = None 
 360      Weapon = PRIMARY BuggyRocketWeapon
 361    End
 362    WeaponSet
 363      Conditions = PLAYER_UPGRADE 
 364      Weapon = PRIMARY BuggyRocketWeaponUpgraded
 365    End
 366    ArmorSet
 367      Conditions      = None
 368      Armor           = TruckArmor
 369      DamageFX        = TankDamageFX
 370    End
 371    BuildCost       = 900
 372    BuildTime       = 10.0          ;in seconds    
 373    VisionRange     = 180
 374    ShroudClearingRange = 300
 375    Prerequisites
 376      Object = GLAArmsDealer
 377      Object = GLAPalace
 378    End
 379  
 380    ExperienceValue       = 50 50 100 150    ;Experience point value at each level
 381    ExperienceRequired    = 0 200 400 800  ;Experience points needed to gain each level
 382    IsTrainable           = Yes             ;Can gain experience
 383    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
 384    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
 385    CommandSet            = GLAVehicleRocketBuggyCommandSet
 386  
 387    ; *** AUDIO Parameters ***
 388    VoiceSelect = RocketBuggyVoiceSelect
 389    VoiceMove = RocketBuggyVoiceMove
 390    VoiceAttack = RocketBuggyVoiceAttack
 391    SoundMoveStart = RocketBuggyMoveStart
 392    SoundMoveStartDamaged = RocketBuggyMoveStart
 393    VoiceGuard = RocketBuggyVoiceMove
 394  
 395  
 396    UnitSpecificSounds
 397      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
 398      VoiceCreate          = RocketBuggyVoiceCreate
 399      TurretMoveStart = NoSound
 400      TurretMoveLoop = TurretMoveLoop  
 401    ; Required for the W3DTruckDraw module
 402      TruckLandingSound = RocketBuggyLand
 403      TruckPowerslideSound = RocketBuggyPowerslide
 404      VoiceCrush      = RocketBuggyVoiceCrush
 405      VoiceEnter = RocketBuggyVoiceMove
 406    End
 407  
 408    ; *** ENGINEERING Parameters ***
 409    RadarPriority = UNIT
 410    KindOf = PRELOAD SELECTABLE CAN_ATTACK DONT_AUTO_CRUSH_INFANTRY ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE
 411  
 412    Body = ActiveBody ModuleTag_02
 413      MaxHealth       = 120
 414      InitialHealth   = 120
 415  
 416      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
 417      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
 418      SubdualDamageCap = 240
 419      SubdualDamageHealRate = 500
 420      SubdualDamageHealAmount = 50
 421    End
 422    Behavior = AIUpdateInterface ModuleTag_03
 423      Turret
 424        TurretTurnRate = 90
 425        ControlledWeaponSlots = PRIMARY
 426      End
 427      AutoAcquireEnemiesWhenIdle = Yes
 428    End
 429    Locomotor = SET_NORMAL RocketBuggyLocomotor
 430    Behavior = PhysicsBehavior ModuleTag_04
 431      Mass = 50.0
 432    End
 433  
 434  ; The pop up AirDeath 
 435    Behavior = SlowDeathBehavior ModuleTag_05
 436      DeathTypes = ALL -CRUSHED -SPLATTED
 437      ProbabilityModifier = 5
 438      ModifierBonusPerOverkillPercent = 20%  ; negative means less likely to pick this in the face of much damage, positive means more likely
 439      DestructionDelay = 0
 440      FX = INITIAL FX_BuggyNewDeathExplosion
 441      OCL = FINAL OCL_RocketBuggyAirDeathStart
 442    End
 443  
 444    Behavior = AutoHealBehavior ModuleTag_08
 445      HealingAmount = 2
 446      HealingDelay = 1000 ; msec
 447      TriggeredBy = Upgrade_GLAJunkRepair
 448    End
 449  
 450    Behavior = WeaponSetUpgrade ModuleTag_09
 451      TriggeredBy = Upgrade_GLABuggyAmmo
 452    End
 453  
 454    Behavior = DestroyDie ModuleTag_11
 455      DeathTypes = NONE +CRUSHED +SPLATTED
 456    End
 457  
 458    ; A crushing defeat
 459    Behavior = FXListDie ModuleTag_12
 460      DeathTypes = NONE +CRUSHED +SPLATTED
 461      DeathFX = FX_CarCrush
 462    End
 463    Behavior = CreateObjectDie ModuleTag_13
 464      DeathTypes = NONE +CRUSHED +SPLATTED
 465      CreationList = OCL_RocketBuggy_CrushEffect
 466    End
 467    Behavior = CreateCrateDie ModuleTag_14
 468      CrateData = SalvageCrateData
 469      ;CrateData = EliteTankCrateData
 470      ;CrateData = HeroicTankCrateData
 471    End
 472    
 473    Behavior                 = TransitionDamageFX ModuleTag_15
 474      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
 475      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
 476    End
 477  
 478    Behavior = FlammableUpdate ModuleTag_21
 479      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
 480      AflameDamageAmount = 3       ; taking this much damage...
 481      AflameDamageDelay = 500       ; this often.
 482    End
 483  
 484    Geometry = BOX
 485    GeometryMajorRadius = 13.0
 486    GeometryMinorRadius = 9.0
 487    GeometryHeight = 7.5     
 488    GeometryIsSmall = Yes    
 489  
 490    Shadow = SHADOW_VOLUME
 491    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
 492  
 493  End
 494  
 495  
 496  
 497  
 498  
 499  ;------------------------------------------------------------------------------
 500  ;GLA Combat Bike
 501  Object GLAVehicleCombatBike
 502  
 503    ; *** ART Parameters ***
 504    SelectPortrait         = SUComBike_L
 505    ButtonImage            = SUComBike
 506    
 507    UpgradeCameo1 = Upgrade_GLAJunkRepair
 508    ;UpgradeCameo2 = NONE
 509    ;UpgradeCameo3 = NONE
 510    ;UpgradeCameo4 = NONE
 511    ;UpgradeCameo5 = NONE
 512  
 513    
 514    Draw = W3DTruckDraw ModuleTag_01
 515      OkToChangeModelColor = Yes
 516  
 517      ;Normal Bike
 518      ;------------------------------
 519      DefaultConditionState
 520        Model = UVComBike
 521        WeaponFireFXBone    = PRIMARY Muzzle_B
 522        WeaponLaunchBone    = PRIMARY RocketFX03
 523        WeaponMuzzleFlash   = PRIMARY MuzzleFX_B
 524        ParticleSysBone     = SMOKE CombatBikeSmokeLight
 525  
 526        HideSubObject = BOMBBIKE ; Hide from all states except terrorist (rider 5)
 527  
 528  
 529      End
 530      AliasConditionState RIDER1
 531      AliasConditionState RIDER1 MOVING
 532      AliasConditionState RIDER6
 533      AliasConditionState RIDER6 MOVING
 534      AliasConditionState RIDER7
 535      AliasConditionState RIDER7 MOVING
 536      ConditionState = REALLYDAMAGED
 537        Model = UVComBike_d
 538      End
 539      AliasConditionState RIDER1 REALLYDAMAGED
 540      AliasConditionState RIDER1 MOVING REALLYDAMAGED
 541      AliasConditionState RIDER6 REALLYDAMAGED
 542      AliasConditionState RIDER6 MOVING REALLYDAMAGED
 543      AliasConditionState RIDER7 REALLYDAMAGED
 544      AliasConditionState RIDER7 MOVING REALLYDAMAGED
 545    
 546      ConditionState = TOPPLED
 547        Model = UVComBike_F
 548        Animation           = UVComBike_F.UVComBike_F
 549        AnimationMode       = ONCE
 550      End
 551      ConditionState = TOPPLED REALLYDAMAGED
 552        Model = UVComBike_dF
 553        Animation           = UVComBike_DF.UVComBike_DF
 554        AnimationMode       = ONCE
 555      End
 556  
 557      ConditionState = RIDER1 MOVING CENTER_TO_LEFT
 558        Model = UVComBike_A1
 559        Animation           = UVComBike_A1.UVComBike_A1
 560        AnimationMode       = ONCE
 561        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 562      End
 563      AliasConditionState RIDER6 MOVING CENTER_TO_LEFT
 564      AliasConditionState RIDER7 MOVING CENTER_TO_LEFT
 565      ConditionState = RIDER1 MOVING CENTER_TO_LEFT REALLYDAMAGED
 566        Model = UVComBike_A1d
 567        Animation           = UVComBike_A1D.UVComBike_A1D
 568        AnimationMode       = ONCE
 569        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 570      End
 571      AliasConditionState RIDER6 MOVING CENTER_TO_LEFT REALLYDAMAGED
 572      AliasConditionState RIDER7 MOVING CENTER_TO_LEFT REALLYDAMAGED
 573  
 574      ConditionState = RIDER1 MOVING LEFT_TO_CENTER
 575        Model = UVComBike_A1
 576        Animation           = UVComBike_A1.UVComBike_A1
 577        AnimationMode       = ONCE_BACKWARDS
 578        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 579      End
 580      AliasConditionState RIDER6 MOVING LEFT_TO_CENTER
 581      AliasConditionState RIDER7 MOVING LEFT_TO_CENTER
 582      ConditionState = RIDER1 MOVING LEFT_TO_CENTER REALLYDAMAGED
 583        Model = UVComBike_A1d
 584        Animation           = UVComBike_A1D.UVComBike_A1D
 585        AnimationMode       = ONCE_BACKWARDS
 586        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 587      End
 588      AliasConditionState RIDER6 MOVING LEFT_TO_CENTER REALLYDAMAGED
 589      AliasConditionState RIDER7 MOVING LEFT_TO_CENTER REALLYDAMAGED
 590  
 591      ConditionState = RIDER1 MOVING CENTER_TO_RIGHT
 592        Model = UVComBike_A2
 593        Animation           = UVComBike_A2.UVComBike_A2
 594        AnimationMode       = ONCE
 595        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 596      End
 597      AliasConditionState  RIDER6 MOVING CENTER_TO_RIGHT
 598      AliasConditionState  RIDER7 MOVING CENTER_TO_RIGHT
 599      ConditionState = RIDER1 MOVING CENTER_TO_RIGHT REALLYDAMAGED
 600        Model = UVComBike_A2d
 601        Animation           = UVComBike_A2D.UVComBike_A2D
 602        AnimationMode       = ONCE
 603        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 604      End
 605      AliasConditionState  RIDER6 MOVING CENTER_TO_RIGHT REALLYDAMAGED
 606      AliasConditionState  RIDER7 MOVING CENTER_TO_RIGHT REALLYDAMAGED
 607  
 608      ConditionState = RIDER1 MOVING RIGHT_TO_CENTER
 609        Model = UVComBike_A2
 610        Animation           = UVComBike_A2.UVComBike_A2
 611        AnimationMode       = ONCE_BACKWARDS
 612        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 613      End
 614      AliasConditionState RIDER6 MOVING RIGHT_TO_CENTER
 615      AliasConditionState RIDER7 MOVING RIGHT_TO_CENTER
 616      ConditionState = RIDER1 MOVING RIGHT_TO_CENTER REALLYDAMAGED
 617        Model = UVComBike_A2d
 618        Animation           = UVComBike_A2D.UVComBike_A2D
 619        AnimationMode       = ONCE_BACKWARDS
 620        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 621      End
 622      AliasConditionState RIDER6 MOVING RIGHT_TO_CENTER REALLYDAMAGED
 623      AliasConditionState RIDER7 MOVING RIGHT_TO_CENTER REALLYDAMAGED
 624  
 625  
 626  
 627  
 628  
 629  
 630      ;Terror Bike
 631      ;------------------------------
 632      ConditionState  RIDER5
 633        Model = UVComBike
 634        WeaponFireFXBone    = PRIMARY Muzzle_B
 635        WeaponLaunchBone    = PRIMARY RocketFX03
 636        WeaponMuzzleFlash   = PRIMARY MuzzleFX_B
 637        ParticleSysBone     = SMOKE CombatBikeSmokeLight
 638        ShowSubObject = BOMBBIKE
 639      End
 640      AliasConditionState RIDER5 MOVING
 641  
 642      ConditionState = REALLYDAMAGED RIDER5
 643        Model = UVComBike_d
 644        ShowSubObject = BOMBBIKE
 645      End
 646      AliasConditionState RIDER5 MOVING REALLYDAMAGED
 647    
 648      ConditionState = TOPPLED RIDER5
 649        Model = UVComBike_F
 650        Animation           = UVComBike_F.UVComBike_F
 651        AnimationMode       = ONCE
 652        ShowSubObject = BOMBBIKE
 653      End
 654      ConditionState = TOPPLED REALLYDAMAGED RIDER5
 655        Model = UVComBike_dF
 656        Animation           = UVComBike_DF.UVComBike_DF
 657        AnimationMode       = ONCE
 658        ShowSubObject = BOMBBIKE
 659      End
 660  
 661      ConditionState = RIDER5 MOVING CENTER_TO_LEFT
 662        Model = UVComBike_A1
 663        Animation           = UVComBike_A1.UVComBike_A1
 664        AnimationMode       = ONCE
 665        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 666        ShowSubObject = BOMBBIKE
 667      End
 668  
 669      ConditionState = RIDER5 MOVING CENTER_TO_LEFT REALLYDAMAGED
 670        Model = UVComBike_A1d
 671        Animation           = UVComBike_A1D.UVComBike_A1D
 672        AnimationMode       = ONCE
 673        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 674        ShowSubObject = BOMBBIKE
 675      End
 676  
 677      ConditionState = RIDER5 MOVING LEFT_TO_CENTER
 678        Model = UVComBike_A1
 679        Animation           = UVComBike_A1.UVComBike_A1
 680        AnimationMode       = ONCE_BACKWARDS
 681        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 682        ShowSubObject = BOMBBIKE
 683      End
 684  
 685      ConditionState = RIDER5 MOVING LEFT_TO_CENTER REALLYDAMAGED
 686        Model = UVComBike_A1d
 687        Animation           = UVComBike_A1D.UVComBike_A1D
 688        AnimationMode       = ONCE_BACKWARDS
 689        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 690        ShowSubObject = BOMBBIKE
 691      End
 692  
 693      ConditionState = RIDER5 MOVING CENTER_TO_RIGHT
 694        Model = UVComBike_A2
 695        Animation           = UVComBike_A2.UVComBike_A2
 696        AnimationMode       = ONCE
 697        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 698        ShowSubObject = BOMBBIKE
 699      End
 700  
 701      ConditionState = RIDER5 MOVING CENTER_TO_RIGHT REALLYDAMAGED
 702        Model = UVComBike_A2d
 703        Animation           = UVComBike_A2D.UVComBike_A2D
 704        AnimationMode       = ONCE
 705        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 706        ShowSubObject = BOMBBIKE
 707      End
 708  
 709      ConditionState = RIDER5 MOVING RIGHT_TO_CENTER
 710        Model = UVComBike_A2
 711        Animation           = UVComBike_A2.UVComBike_A2
 712        AnimationMode       = ONCE_BACKWARDS
 713        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 714        ShowSubObject = BOMBBIKE
 715      End
 716  
 717      ConditionState = RIDER5 MOVING RIGHT_TO_CENTER REALLYDAMAGED
 718        Model = UVComBike_A2d
 719        Animation           = UVComBike_A2D.UVComBike_A2D
 720        AnimationMode       = ONCE_BACKWARDS
 721        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 722        ShowSubObject = BOMBBIKE
 723      End
 724  
 725  
 726  
 727  
 728  
 729  
 730  
 731  
 732      ;Gun Bike
 733      ;------------------------------
 734      ConditionState = RIDER2
 735        Model = UVComBikeG
 736      End
 737      AliasConditionState RIDER2 MOVING
 738      AliasConditionState RIDER4
 739      AliasConditionState RIDER4 MOVING
 740      ConditionState = RIDER2 REALLYDAMAGED
 741        Model = UVComBikeG_d
 742      End
 743      AliasConditionState RIDER2 MOVING REALLYDAMAGED
 744      AliasConditionState RIDER4 REALLYDAMAGED
 745      AliasConditionState RIDER4 MOVING REALLYDAMAGED
 746     
 747      ConditionState = RIDER2 MOVING CENTER_TO_LEFT
 748        Model = UVComBikeG
 749        Animation           = UVComBikeG_A1.UVComBikeG_A1
 750        AnimationMode       = ONCE
 751        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 752      End
 753      AliasConditionState RIDER4 MOVING CENTER_TO_LEFT
 754      ConditionState = RIDER2 MOVING CENTER_TO_LEFT REALLYDAMAGED
 755        Model = UVComBikeG_d
 756        Animation           = UVComBikeG_A1.UVComBikeG_A1
 757        AnimationMode       = ONCE
 758        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 759      End
 760      AliasConditionState RIDER4 MOVING CENTER_TO_LEFT REALLYDAMAGED
 761  
 762      ConditionState = RIDER2 MOVING LEFT_TO_CENTER
 763        Model = UVComBikeG
 764        Animation           = UVComBikeG_A1.UVComBikeG_A1
 765        AnimationMode       = ONCE_BACKWARDS
 766        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 767      End
 768      AliasConditionState RIDER4 MOVING LEFT_TO_CENTER
 769      ConditionState = RIDER2 MOVING LEFT_TO_CENTER REALLYDAMAGED
 770        Model = UVComBikeG_d
 771        Animation           = UVComBikeG_A1.UVComBikeG_A1
 772        AnimationMode       = ONCE_BACKWARDS
 773        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 774      End
 775      AliasConditionState RIDER4 MOVING LEFT_TO_CENTER REALLYDAMAGED
 776  
 777      ConditionState = RIDER2 MOVING CENTER_TO_RIGHT
 778        Model = UVComBikeG
 779        Animation           = UVComBikeG_A2.UVComBikeG_A2
 780        AnimationMode       = ONCE
 781        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 782      End
 783      AliasConditionState RIDER4 MOVING CENTER_TO_RIGHT
 784      ConditionState = RIDER2 MOVING CENTER_TO_RIGHT REALLYDAMAGED
 785        Model = UVComBikeG_d
 786        Animation           = UVComBikeG_A2.UVComBikeG_A2
 787        AnimationMode       = ONCE
 788        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 789      End
 790      AliasConditionState RIDER4 MOVING CENTER_TO_RIGHT REALLYDAMAGED
 791  
 792      ConditionState = RIDER2 MOVING RIGHT_TO_CENTER
 793        Model = UVComBikeG
 794        Animation           = UVComBikeG_A2.UVComBikeG_A2
 795        AnimationMode       = ONCE_BACKWARDS
 796        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 797      End
 798      AliasConditionState RIDER4 MOVING RIGHT_TO_CENTER
 799      ConditionState = RIDER2 MOVING RIGHT_TO_CENTER REALLYDAMAGED
 800        Model = UVComBikeG_d
 801        Animation           = UVComBikeG_A2.UVComBikeG_A2
 802        AnimationMode       = ONCE_BACKWARDS
 803        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 804      End
 805      AliasConditionState RIDER4 MOVING RIGHT_TO_CENTER REALLYDAMAGED
 806  
 807      ;Missile Bike
 808      ;------------------------------
 809      ConditionState = RIDER3
 810        Model = UVComBikeTN
 811      End
 812      AliasConditionState RIDER3 MOVING
 813      ConditionState = RIDER3 REALLYDAMAGED
 814        Model = UVComBikeTN_d
 815      End
 816      AliasConditionState RIDER3 MOVING REALLYDAMAGED
 817    
 818      ConditionState = RIDER3 MOVING CENTER_TO_LEFT
 819        Model = UVComBikeTN_A1
 820        Animation           = UVComBikeTN_A1.UVComBikeTN_A1
 821        AnimationMode       = ONCE
 822        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 823      End
 824      ConditionState = RIDER3 MOVING CENTER_TO_LEFT REALLYDAMAGED
 825        Model = UVComBikeTN_A1d
 826        Animation           = UVComBikeTN_A1D.UVComBikeTN_A1D
 827        AnimationMode       = ONCE
 828        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 829      End
 830  
 831      ConditionState = RIDER3 MOVING LEFT_TO_CENTER
 832        Model = UVComBikeTN_A1
 833        Animation           = UVComBikeTN_A1.UVComBikeTN_A1
 834        AnimationMode       = ONCE_BACKWARDS
 835        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 836      End
 837      ConditionState = RIDER3 MOVING LEFT_TO_CENTER REALLYDAMAGED
 838        Model = UVComBikeTN_A1d
 839        Animation           = UVComBikeTN_A1D.UVComBikeTN_A1D
 840        AnimationMode       = ONCE_BACKWARDS
 841        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 842      End
 843  
 844      ConditionState = RIDER3 MOVING CENTER_TO_RIGHT
 845        Model = UVComBikeTN_A2
 846        Animation           = UVComBikeTN_A2D.UVComBikeTN_A2D
 847        AnimationMode       = ONCE
 848        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 849      End
 850      ConditionState = RIDER3 MOVING CENTER_TO_RIGHT REALLYDAMAGED
 851        Model = UVComBikeTN_A2d
 852        Animation           = UVComBikeTN_A2D.UVComBikeTN_A2D
 853        AnimationMode       = ONCE
 854        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 855      End
 856  
 857      ConditionState = RIDER3 MOVING RIGHT_TO_CENTER
 858        Model = UVComBikeTN_A2
 859        Animation           = UVComBikeTN_A2.UVComBikeTN_A2
 860        AnimationMode       = ONCE_BACKWARDS
 861        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 862      End
 863      ConditionState = RIDER3 MOVING RIGHT_TO_CENTER REALLYDAMAGED
 864        Model = UVComBikeTN_A2d
 865        Animation           = UVComBikeTN_A2D.UVComBikeTN_A2D
 866        AnimationMode       = ONCE_BACKWARDS
 867        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
 868      End
 869  
 870      TrackMarks = EXTireTrack03.tga
 871  
 872      Dust                        = CombatBikeDust
 873      DirtSpray                   = CombatBikeDirtSpray
 874      PowerslideSpray             = CombatBikeDirtPowerSlide
 875  
 876      ; These parameters are only used if the model has a separate suspension, 
 877      ; and the locomotor has HasSuspension = Yes.
 878      LeftFrontTireBone           = Tire01
 879      LeftRearTireBone            = Tire00
 880      TireRotationMultiplier      = 0.2   ; this * speed = rotation.
 881      PowerslideRotationAddition  = 2.5   ; This speed is added to the rotation speed when powersliding.
 882  
 883    End
 884  
 885    Draw = W3DModelDraw ModuleTag_Rider01
 886      OkToChangeModelColor = Yes
 887  
 888      DefaultConditionState
 889        ;**************************************************
 890        ;*** Must have a default model in order to see
 891        ;*** house color!!!
 892        ;**************************************************
 893        Model = UIWrkr_SKN
 894        ;WeaponFireFXBone    = PRIMARY Muzzle
 895        ;WeaponLaunchBone    = PRIMARY Muzzle
 896        WeaponMuzzleFlash   = PRIMARY MuzzleFX
 897      End
 898      AliasConditionState MOVING
 899  
 900      ;Worker animations
 901      ;-----------------------
 902      ConditionState = RIDER1 
 903        Model = UIWrkr_SKN
 904        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A5
 905        AnimationMode = LOOP
 906      End
 907      ConditionState = RIDER1 MOVING
 908        Model = UIWrkr_SKN
 909        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A4
 910        AnimationMode = LOOP
 911      End
 912      ConditionState = RIDER1 MOVING CENTER_TO_LEFT
 913        Model = UIWrkr_SKN
 914        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A1
 915        AnimationMode       = ONCE
 916      End
 917      ConditionState = RIDER1 MOVING LEFT_TO_CENTER
 918        Model = UIWrkr_SKN
 919        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A1
 920        AnimationMode       = ONCE_BACKWARDS
 921      End
 922      ConditionState = RIDER1 MOVING CENTER_TO_RIGHT
 923        Model = UIWrkr_SKN
 924        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A2
 925        AnimationMode       = ONCE
 926      End
 927      ConditionState = RIDER1 MOVING RIGHT_TO_CENTER
 928        Model = UIWrkr_SKN
 929        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A2
 930        AnimationMode       = ONCE_BACKWARDS
 931      End
 932  
 933  
 934      ;Rebel animations
 935      ;-----------------------
 936      ConditionState = RIDER2 
 937        Model = UIRGrd_SKN
 938        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A5
 939        AnimationMode = LOOP
 940      End
 941      ConditionState = RIDER2 MOVING
 942        Model = UIRGrd_SKN
 943        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A4
 944        AnimationMode = LOOP
 945      End
 946      ConditionState = RIDER2 MOVING CENTER_TO_LEFT
 947        Model = UIRGrd_SKN
 948        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A1
 949        AnimationMode       = ONCE
 950      End
 951      ConditionState = RIDER2 MOVING LEFT_TO_CENTER
 952        Model = UIRGrd_SKN
 953        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A1
 954        AnimationMode       = ONCE_BACKWARDS
 955      End
 956      ConditionState = RIDER2 MOVING CENTER_TO_RIGHT
 957        Model = UIRGrd_SKN
 958        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A2
 959        AnimationMode       = ONCE
 960      End
 961      ConditionState = RIDER2 MOVING RIGHT_TO_CENTER
 962        Model = UIRGrd_SKN
 963        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A2
 964        AnimationMode       = ONCE_BACKWARDS
 965      End
 966  
 967      ;RPG Trooper animations
 968      ;-----------------------
 969      ConditionState = RIDER3 
 970        Model = UITunF_SKN2
 971        Animation           = UITunF_SKL.UITunF_CmBk_A5
 972        AnimationMode = LOOP
 973      End
 974      ConditionState = RIDER3 MOVING
 975        Model = UITunF_SKN2
 976        Animation           = UITunF_SKL.UITunF_CmBk_A4
 977        AnimationMode = LOOP
 978      End
 979      ConditionState = RIDER3 MOVING CENTER_TO_LEFT
 980        Model = UITunF_SKN2
 981        Animation           = UITunF_SKL.UITunF_CmBk_A1
 982        AnimationMode       = ONCE
 983      End
 984      ConditionState = RIDER3 MOVING LEFT_TO_CENTER
 985        Model = UITunF_SKN2
 986        Animation           = UITunF_SKL.UITunF_CmBk_A1
 987        AnimationMode       = ONCE_BACKWARDS
 988      End
 989      ConditionState = RIDER3 MOVING CENTER_TO_RIGHT
 990        Model = UITunF_SKN2
 991        Animation           = UITunF_SKL.UITunF_CmBk_A2
 992        AnimationMode       = ONCE
 993      End
 994      ConditionState = RIDER3 MOVING RIGHT_TO_CENTER
 995        Model = UITunF_SKN2
 996        Animation           = UITunF_SKL.UITunF_CmBk_A2
 997        AnimationMode       = ONCE_BACKWARDS
 998      End
 999  
1000      ;Jarmen Kell animations
1001      ;-----------------------
1002      ConditionState = RIDER4 
1003        Model = UIHERO_SKN
1004        Animation           = UIHERO_SKL.UIHERO_CmBk_A5
1005        AnimationMode = LOOP
1006      End
1007      ConditionState = RIDER4 MOVING
1008        Model = UIHERO_SKN
1009        Animation           = UIHERO_SKL.UIHERO_CmBk_A4
1010        AnimationMode = LOOP
1011      End
1012      ConditionState = RIDER4 MOVING CENTER_TO_LEFT
1013        Model = UIHERO_SKN
1014        Animation           = UIHERO_SKL.UIHERO_CmBk_A1
1015        AnimationMode       = ONCE
1016      End
1017      ConditionState = RIDER4 MOVING LEFT_TO_CENTER
1018        Model = UIHERO_SKN
1019        Animation           = UIHERO_SKL.UIHERO_CmBk_A1
1020        AnimationMode       = ONCE_BACKWARDS
1021      End
1022      ConditionState = RIDER4 MOVING CENTER_TO_RIGHT
1023        Model = UIHERO_SKN
1024        Animation           = UIHERO_SKL.UIHERO_CmBk_A2
1025        AnimationMode       = ONCE
1026      End
1027      ConditionState = RIDER4 MOVING RIGHT_TO_CENTER
1028        Model = UIHERO_SKN
1029        Animation           = UIHERO_SKL.UIHERO_CmBk_A2
1030        AnimationMode       = ONCE_BACKWARDS
1031      End
1032  
1033      ;Terrorist animations
1034      ;-----------------------
1035      ConditionState = RIDER5 
1036        Model = UITer_Local_SKN
1037        Animation           = UITer_Local_SKL.UITER_Local_A5
1038        AnimationMode = LOOP
1039      End
1040      ConditionState = RIDER5 MOVING
1041        Model = UITer_Local_SKN
1042        Animation           = UITer_Local_SKL.UITER_Local_A4
1043        AnimationMode = LOOP
1044      End
1045      ConditionState = RIDER5 MOVING CENTER_TO_LEFT
1046        Model = UITer_Local_SKN
1047        Animation           = UITer_Local_SKL.UITER_Local_A1
1048        AnimationMode       = ONCE
1049      End
1050      ConditionState = RIDER5 MOVING LEFT_TO_CENTER
1051        Model = UITer_Local_SKN
1052        Animation           = UITer_Local_SKL.UITER_Local_A1
1053        AnimationMode       = ONCE_BACKWARDS
1054      End
1055      ConditionState = RIDER5 MOVING CENTER_TO_RIGHT
1056        Model = UITer_Local_SKN
1057        Animation           = UITer_Local_SKL.UITER_Local_A2
1058        AnimationMode       = ONCE
1059      End
1060      ConditionState = RIDER5 MOVING RIGHT_TO_CENTER
1061        Model = UITer_Local_SKN
1062        Animation           = UITer_Local_SKL.UITER_Local_A2
1063        AnimationMode       = ONCE_BACKWARDS
1064      End
1065  
1066  
1067      ;Hijacker animations
1068      ;-----------------------
1069      ConditionState = RIDER6 
1070        Model = UIHJCK_SKN
1071        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A5
1072        AnimationMode = LOOP
1073      End
1074      ConditionState = RIDER6 MOVING
1075        Model = UIHJCK_SKN
1076        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A4
1077        AnimationMode = LOOP
1078      End
1079      ConditionState = RIDER6 MOVING CENTER_TO_LEFT
1080        Model = UIHJCK_SKN
1081        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A1
1082        AnimationMode       = ONCE
1083      End
1084      ConditionState = RIDER6 MOVING LEFT_TO_CENTER
1085        Model = UIHJCK_SKN
1086        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A1
1087        AnimationMode       = ONCE_BACKWARDS
1088      End
1089      ConditionState = RIDER6 MOVING CENTER_TO_RIGHT
1090        Model = UIHJCK_SKN
1091        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A2
1092        AnimationMode       = ONCE
1093      End
1094      ConditionState = RIDER6 MOVING RIGHT_TO_CENTER
1095        Model = UIHJCK_SKN
1096        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A2
1097        AnimationMode       = ONCE_BACKWARDS
1098      End
1099  
1100      ;Saboteur animations
1101      ;-----------------------
1102      ConditionState = RIDER7 
1103        Model = UISabotr_SKN
1104        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A5
1105        AnimationMode = LOOP
1106      End
1107      ConditionState = RIDER7 MOVING
1108        Model = UISabotr_SKN
1109        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A4
1110        AnimationMode = LOOP
1111      End
1112      ConditionState = RIDER7 MOVING CENTER_TO_LEFT
1113        Model = UISabotr_SKN
1114        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A1
1115        AnimationMode       = ONCE
1116      End
1117      ConditionState = RIDER7 MOVING LEFT_TO_CENTER
1118        Model = UISabotr_SKN
1119        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A1
1120        AnimationMode       = ONCE_BACKWARDS
1121      End
1122      ConditionState = RIDER7 MOVING CENTER_TO_RIGHT
1123        Model = UISabotr_SKN
1124        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A2
1125        AnimationMode       = ONCE
1126      End
1127      ConditionState = RIDER7 MOVING RIGHT_TO_CENTER
1128        Model = UISabotr_SKN
1129        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A2
1130        AnimationMode       = ONCE_BACKWARDS
1131      End
1132  
1133      ConditionState = TOPPLED
1134        Model = None
1135      End
1136      AliasConditionState TOPPLED MOVING
1137  
1138    End
1139  
1140    ; ***DESIGN parameters ***
1141    DisplayName         = OBJECT:CombatBike
1142    Side                = GLA
1143    EditorSorting       = VEHICLE
1144    TransportSlotCount  = 1                 ;how many "slots" we take in a transport (0 == not transportable)
1145    WeaponSet
1146      Conditions = None
1147      Weapon = PRIMARY NONE
1148    End
1149    WeaponSet
1150      Conditions = WEAPON_RIDER2
1151      Weapon = PRIMARY GLARebelBikerMachineGun
1152    End
1153    WeaponSet
1154      Conditions = WEAPON_RIDER3
1155      Weapon = PRIMARY TunnelDefenderBikerRocketWeapon
1156    End
1157    WeaponSet
1158      Conditions = WEAPON_RIDER4
1159      Weapon = PRIMARY GLABikerKellSniperRifle
1160      Weapon = SECONDARY GLAJarmenKellVehiclePilotSniperRifle
1161      AutoChooseSources = SECONDARY NONE
1162    End
1163    WeaponSet
1164      ;Kill himself so we can use FireWeaponWhenDead to fire the real weapon -- and use UNRESISTABLE
1165      ;damage to do ini logic for type of death to play -- unresistable for success.
1166      Conditions = WEAPON_RIDER5
1167      Weapon = PRIMARY TerroristSuicideWeapon 
1168    End
1169    ArmorSet
1170      Conditions      = None
1171      Armor           = TruckArmor
1172      DamageFX        = TankDamageFX
1173    End
1174    BuildCost       = 500
1175    BuildTime       = 4.0          ;in seconds    
1176    VisionRange     = 180
1177    ShroudClearingRange = 300
1178    Prerequisites
1179      Object = GLAArmsDealer
1180    End
1181  
1182    ExperienceValue       = 50 50 100 150    ;Experience point value at each level
1183    ExperienceRequired    = 0 200 400 800  ;Experience points needed to gain each level
1184    IsTrainable           = Yes             ;Can gain experience
1185    ;CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
1186    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
1187    ;CommandSet            = GLAVehicleCombatBikeCommandSet ****COMMANDSET is overwritten in RiderChangeContain!
1188  
1189    ; *** AUDIO Parameters ***
1190    VoiceSelect = CombatCycleVoiceSelect
1191    VoiceMove = CombatCycleVoiceMove
1192    VoiceAttack = CombatCycleVoiceAttack
1193    SoundMoveStart = CombatBikeMoveStart
1194    SoundMoveStartDamaged = CombatBikeMoveStart
1195    VoiceGuard = CombatCycleVoiceMove
1196    SoundEnter = CombatCycleSwitchRider
1197  
1198    UnitSpecificSounds
1199      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
1200      VoiceCreate          = CombatCycleVoiceCreate
1201      TurretMoveStart = NoSound
1202      TurretMoveLoop = TurretMoveLoop  
1203    ; Required for the W3DTruckDraw module
1204      TruckLandingSound = RocketBuggyLand
1205      TruckPowerslideSound = CombatBikeMoveStart
1206      VoiceCrush      = CombatCycleVoiceMove
1207      VoiceEnter = CombatCycleVoiceMove
1208    End
1209  
1210    ; *** ENGINEERING Parameters ***
1211    RadarPriority = UNIT
1212    KindOf = PRELOAD SELECTABLE CAN_ATTACK DONT_AUTO_CRUSH_INFANTRY ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE CLIFF_JUMPER
1213  
1214    Body = ActiveBody ModuleTag_02
1215      MaxHealth       = 100
1216      InitialHealth   = 100
1217  
1218      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
1219      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
1220      SubdualDamageCap = 200
1221      SubdualDamageHealRate = 500
1222      SubdualDamageHealAmount = 50
1223    End
1224    Behavior = AIUpdateInterface ModuleTag_03
1225      Turret
1226        TurretTurnRate = 0       ; turn rate, in degrees per sec
1227        NaturalTurretAngle = 0
1228        ControlledWeaponSlots = PRIMARY SECONDARY
1229      End
1230      AutoAcquireEnemiesWhenIdle = No
1231    End
1232    Locomotor = SET_NORMAL CombatBikeGroundLocomotor CombatBikeCliffLocomotor
1233    Locomotor = SET_SLUGGISH CombatBikeTerroristGroundLocomotor CombatBikeTerroristCliffLocomotor
1234    Behavior = PhysicsBehavior ModuleTag_04
1235      Mass = 15.0
1236    End
1237  
1238    Behavior = SlowDeathBehavior DeathTag_04
1239      ExemptStatus = STATUS_RIDER1 STATUS_RIDER2 STATUS_RIDER3 STATUS_RIDER4 STATUS_RIDER5 STATUS_RIDER6 STATUS_RIDER7
1240      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
1241      DestructionDelay = 0
1242      FX = INITIAL FX_BuggyNewDeathExplosion
1243      OCL = FINAL OCL_CombatBikeAirDeathStart
1244    End
1245    Behavior = SlowDeathBehavior DeathTag_05
1246      RequiredStatus = STATUS_RIDER1
1247      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
1248      DestructionDelay = 0
1249      FX = INITIAL FX_BuggyNewDeathExplosion
1250      OCL = INITIAL OCL_WorkerFlyingOffBikeDeathStart
1251      OCL = FINAL OCL_CombatBikeAirDeathStart
1252    End
1253    Behavior = SlowDeathBehavior DeathTag_06
1254      RequiredStatus = STATUS_RIDER2
1255      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
1256      DestructionDelay = 0
1257      FX = INITIAL FX_BuggyNewDeathExplosion
1258      OCL = INITIAL OCL_RebelFlyingOffBikeDeathStart
1259      OCL = FINAL OCL_CombatBikeAirDeathStart
1260    End
1261    Behavior = SlowDeathBehavior DeathTag_07
1262      RequiredStatus = STATUS_RIDER3
1263      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
1264      DestructionDelay = 0
1265      FX = INITIAL FX_BuggyNewDeathExplosion
1266      OCL = INITIAL OCL_TunnelDefenderFlyingOffBikeDeathStart
1267      OCL = FINAL OCL_CombatBikeAirDeathStart
1268    End
1269    Behavior = SlowDeathBehavior DeathTag_08
1270      RequiredStatus = STATUS_RIDER4
1271      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
1272      DestructionDelay = 0
1273      FX = INITIAL FX_BuggyNewDeathExplosion
1274      OCL = INITIAL OCL_JarmenKellFlyingOffBikeDeathStart
1275      OCL = FINAL OCL_CombatBikeAirDeathStart
1276    End
1277    Behavior = SlowDeathBehavior DeathTag_09
1278      RequiredStatus = STATUS_RIDER5
1279      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
1280      DestructionDelay = 0
1281      FX = INITIAL FX_BuggyNewDeathExplosion
1282      OCL = INITIAL OCL_TerroristFlyingOffBikeDeathStart
1283      OCL = FINAL OCL_CombatBikeAirDeathStart
1284    End
1285    Behavior = SlowDeathBehavior DeathTag_10
1286      RequiredStatus = STATUS_RIDER6
1287      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
1288      DestructionDelay = 0
1289      FX = INITIAL FX_BuggyNewDeathExplosion
1290      OCL = INITIAL OCL_HijackerFlyingOffBikeDeathStart
1291      OCL = FINAL OCL_CombatBikeAirDeathStart
1292    End
1293    Behavior = SlowDeathBehavior DeathTag_11
1294      RequiredStatus = STATUS_RIDER7
1295      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
1296      DestructionDelay = 0
1297      FX = INITIAL FX_BuggyNewDeathExplosion
1298      OCL = INITIAL OCL_SaboteurFlyingOffBikeDeathStart
1299      OCL = FINAL OCL_CombatBikeAirDeathStart
1300    End
1301  
1302    Behavior = AutoHealBehavior ModuleTag_08
1303      HealingAmount = 2
1304      HealingDelay = 1000 ; msec
1305      TriggeredBy = Upgrade_GLAJunkRepair
1306    End
1307  
1308    Behavior = WeaponSetUpgrade ModuleTag_09
1309      TriggeredBy = Upgrade_GLABuggyAmmo
1310    End
1311  
1312    ;Create the hulk after the toppling is complete (not killed until topple anim finished).
1313    Behavior = CreateObjectDie ModuleTag_10
1314      DeathTypes = NONE +TOPPLED
1315      CreationList = OCL_CombatBike_ToppledHulk
1316    End
1317  
1318    Behavior = DestroyDie ModuleTag_11
1319      DeathTypes = NONE +CRUSHED +SPLATTED +TOPPLED
1320    End
1321  
1322    ; A crushing defeat
1323    Behavior = FXListDie ModuleTag_12
1324      DeathTypes = NONE +CRUSHED +SPLATTED
1325      DeathFX = FX_CarCrush
1326    End
1327    Behavior = CreateObjectDie ModuleTag_13
1328      DeathTypes = NONE +CRUSHED +SPLATTED
1329      CreationList = OCL_RocketBuggy_CrushEffect
1330    End
1331    Behavior = CreateCrateDie ModuleTag_14
1332      CrateData = SalvageCrateData
1333      ;CrateData = EliteTankCrateData
1334      ;CrateData = HeroicTankCrateData
1335    End
1336  
1337    Behavior                 = TransitionDamageFX ModuleTag_15
1338      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
1339      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
1340    End
1341  
1342    Behavior = RiderChangeContain ModuleTag_16
1343      ;A list of each valid rider that is allowed to ride this object. Each rider is
1344      ;assigned a modelcondition state, a weaponset flag, an object status bit, and
1345      ;a commandset override. The actual object is hidden inside the container so the 
1346      ;visible rider is fluff. Also riders are deleted (not killed) when the bike is
1347      ;destroyed, so all deaths must be OCLs on the bike.
1348      Rider1 = GLAInfantryWorker         RIDER1 WEAPON_RIDER1 STATUS_RIDER1 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
1349      Rider2 = GLAInfantryRebel          RIDER2 WEAPON_RIDER2 STATUS_RIDER2 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
1350      Rider3 = GLAInfantryTunnelDefender RIDER3 WEAPON_RIDER3 STATUS_RIDER3 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
1351      Rider4 = GLAInfantryJarmenKell     RIDER4 WEAPON_RIDER4 STATUS_RIDER4 GLAVehicleCombatBikeJarmenKellCommandSet SET_NORMAL
1352      Rider5 = GLAInfantryTerrorist      RIDER5 WEAPON_RIDER5 STATUS_RIDER5 GLAVehicleCombatBikeDefaultCommandSet SET_SLUGGISH
1353      Rider6 = GLAInfantryHijacker       RIDER6 WEAPON_RIDER6 STATUS_RIDER6 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
1354      Rider7 = GLAInfantrySaboteur       RIDER7 WEAPON_RIDER7 STATUS_RIDER7 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
1355      ScuttleDelay          = 1500
1356      ScuttleStatus         = TOPPLED
1357  
1358      ;Standard TransportContain stuff
1359      Slots                 = 1
1360      InitialPayload        = GLAInfantryRebel 1
1361      ScatterNearbyOnExit   = No
1362      HealthRegen%PerSec    = 0
1363      DamagePercentToUnits  = 100%  ; This module will Delete the rider on death, but we need to kill him as well so he doesn't pick up the bike's salvage crate.
1364      BurnedDeathToUnits    = No    ; And no Burned death.
1365      AllowInsideKindOf     = INFANTRY
1366      ExitDelay         = 250
1367      NumberOfExitPaths = 1 ; Defaults to 1.  Set 0 to not use ExitStart/ExitEnd, set higher than 1 to use ExitStart01-nn/ExitEnd01-nn
1368      GoAggressiveOnExit = Yes ; AI Will tell people to set their mood to Aggressive on exiting
1369      DoorOpenTime = 0
1370    End
1371  
1372    Behavior = AnimationSteeringUpdate ModuleTag_17
1373      MinTransitionTime = 300
1374    End
1375  
1376    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death18
1377      RequiredStatus  = STATUS_RIDER5
1378      DeathWeapon     = SuicideBikeBomb
1379      StartsActive    = Yes
1380      DeathTypes      = NONE +SUICIDED +CRUSHED +SPLATTED +LASERED +BURNED +EXPLODED
1381    End
1382  
1383    Behavior = StealthUpdate ModuleTag_19
1384      UseRiderStealth             = Yes
1385      ;StealthDelay                = 2000 ; msec
1386      ;StealthForbiddenConditions  = ATTACKING
1387      ;InnateStealth               = Yes
1388      ;OrderIdleEnemiesToAttackMeUponReveal  = Yes
1389    End
1390  
1391    Behavior = FlammableUpdate ModuleTag_21
1392      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
1393      AflameDamageAmount = 3       ; taking this much damage...
1394      AflameDamageDelay = 500       ; this often.
1395    End
1396  
1397    Behavior = FXListDie ModuleDieSoundTag_22
1398      DeathTypes = ALL -TOPPLED ; Not if we are "dying" by being abandoned by our human.  Nobody left to scream
1399      DeathFX = FX_CombatCycleDie
1400    End
1401    Behavior = FXListDie ModuleDieSoundTag_23
1402      DeathTypes = NONE +TOPPLED
1403      DeathFX = FX_CombatCycleDieNoScream
1404    End
1405  
1406  
1407    Geometry = BOX
1408    GeometryMajorRadius = 11.0
1409    GeometryMinorRadius = 2.5
1410    GeometryHeight = 7.5     
1411    GeometryIsSmall = Yes    
1412  
1413    Shadow = SHADOW_VOLUME
1414    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
1415  
1416  End
1417  
1418  ;------------------------------------------------------------------------------
1419  ;GLA Combat Bike with Tunnel Defender
1420  Object GLAVehicleCombatBikeRocket
1421  
1422    ; *** ART Parameters ***
1423    SelectPortrait         = SUComBike_L
1424    ButtonImage            = SUComBike
1425    
1426    UpgradeCameo1 = Upgrade_GLAJunkRepair
1427    ;UpgradeCameo2 = NONE
1428    ;UpgradeCameo3 = NONE
1429    ;UpgradeCameo4 = NONE
1430    ;UpgradeCameo5 = NONE
1431  
1432    
1433    Draw = W3DTruckDraw ModuleTag_01
1434      OkToChangeModelColor = Yes
1435  
1436      ;Normal Bike
1437      ;------------------------------
1438      DefaultConditionState
1439        Model = UVComBike
1440        WeaponFireFXBone    = PRIMARY Muzzle_B
1441        WeaponLaunchBone    = PRIMARY RocketFX03
1442        WeaponMuzzleFlash   = PRIMARY MuzzleFX_B
1443        ParticleSysBone     = SMOKE CombatBikeSmokeLight
1444      End
1445      AliasConditionState RIDER1
1446      AliasConditionState RIDER1 MOVING
1447      AliasConditionState RIDER5
1448      AliasConditionState RIDER5 MOVING
1449      AliasConditionState RIDER6
1450      AliasConditionState RIDER6 MOVING
1451      AliasConditionState RIDER7
1452      AliasConditionState RIDER7 MOVING
1453      ConditionState = REALLYDAMAGED
1454        Model = UVComBike_d
1455      End
1456      AliasConditionState RIDER1 REALLYDAMAGED
1457      AliasConditionState RIDER1 MOVING REALLYDAMAGED
1458      AliasConditionState RIDER5 REALLYDAMAGED
1459      AliasConditionState RIDER5 MOVING REALLYDAMAGED
1460      AliasConditionState RIDER6 REALLYDAMAGED
1461      AliasConditionState RIDER6 MOVING REALLYDAMAGED
1462      AliasConditionState RIDER7 REALLYDAMAGED
1463      AliasConditionState RIDER7 MOVING REALLYDAMAGED
1464    
1465      ConditionState = TOPPLED
1466        Model = UVComBike
1467        Animation           = UVComBike_F.UVComBike_F
1468        AnimationMode       = ONCE
1469      End
1470      ConditionState = TOPPLED REALLYDAMAGED
1471        Model = UVComBike_d
1472        Animation           = UVComBike_F.UVComBike_F
1473        AnimationMode       = ONCE
1474      End
1475  
1476      ConditionState = RIDER1 MOVING CENTER_TO_LEFT
1477        Model = UVComBike
1478        Animation           = UVComBike_A1.UVComBike_A1
1479        AnimationMode       = ONCE
1480        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1481      End
1482      AliasConditionState RIDER5 MOVING CENTER_TO_LEFT
1483      AliasConditionState RIDER6 MOVING CENTER_TO_LEFT
1484      AliasConditionState RIDER7 MOVING CENTER_TO_LEFT
1485      ConditionState = RIDER1 MOVING CENTER_TO_LEFT REALLYDAMAGED
1486        Model = UVComBike_d
1487        Animation           = UVComBike_A1.UVComBike_A1
1488        AnimationMode       = ONCE
1489        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1490      End
1491      AliasConditionState RIDER5 MOVING CENTER_TO_LEFT REALLYDAMAGED
1492      AliasConditionState RIDER6 MOVING CENTER_TO_LEFT REALLYDAMAGED
1493      AliasConditionState RIDER7 MOVING CENTER_TO_LEFT REALLYDAMAGED
1494  
1495      ConditionState = RIDER1 MOVING LEFT_TO_CENTER
1496        Model = UVComBike
1497        Animation           = UVComBike_A1.UVComBike_A1
1498        AnimationMode       = ONCE_BACKWARDS
1499        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1500      End
1501      AliasConditionState RIDER5 MOVING LEFT_TO_CENTER
1502      AliasConditionState RIDER6 MOVING LEFT_TO_CENTER
1503      AliasConditionState RIDER7 MOVING LEFT_TO_CENTER
1504      ConditionState = RIDER1 MOVING LEFT_TO_CENTER REALLYDAMAGED
1505        Model = UVComBike_d
1506        Animation           = UVComBike_A1.UVComBike_A1
1507        AnimationMode       = ONCE_BACKWARDS
1508        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1509      End
1510      AliasConditionState RIDER5 MOVING LEFT_TO_CENTER REALLYDAMAGED
1511      AliasConditionState RIDER6 MOVING LEFT_TO_CENTER REALLYDAMAGED
1512      AliasConditionState RIDER7 MOVING LEFT_TO_CENTER REALLYDAMAGED
1513  
1514      ConditionState = RIDER1 MOVING CENTER_TO_RIGHT
1515        Model = UVComBike
1516        Animation           = UVComBike_A2.UVComBike_A2
1517        AnimationMode       = ONCE
1518        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1519      End
1520      AliasConditionState  RIDER5 MOVING CENTER_TO_RIGHT
1521      AliasConditionState  RIDER6 MOVING CENTER_TO_RIGHT
1522      AliasConditionState  RIDER7 MOVING CENTER_TO_RIGHT
1523      ConditionState = RIDER1 MOVING CENTER_TO_RIGHT REALLYDAMAGED
1524        Model = UVComBike_d
1525        Animation           = UVComBike_A2.UVComBike_A2
1526        AnimationMode       = ONCE
1527        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1528      End
1529      AliasConditionState  RIDER5 MOVING CENTER_TO_RIGHT REALLYDAMAGED
1530      AliasConditionState  RIDER6 MOVING CENTER_TO_RIGHT REALLYDAMAGED
1531      AliasConditionState  RIDER7 MOVING CENTER_TO_RIGHT REALLYDAMAGED
1532  
1533      ConditionState = RIDER1 MOVING RIGHT_TO_CENTER
1534        Model = UVComBike
1535        Animation           = UVComBike_A2.UVComBike_A2
1536        AnimationMode       = ONCE_BACKWARDS
1537        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1538      End
1539      AliasConditionState RIDER5 MOVING RIGHT_TO_CENTER
1540      AliasConditionState RIDER6 MOVING RIGHT_TO_CENTER
1541      AliasConditionState RIDER7 MOVING RIGHT_TO_CENTER
1542      ConditionState = RIDER1 MOVING RIGHT_TO_CENTER REALLYDAMAGED
1543        Model = UVComBike_d
1544        Animation           = UVComBike_A2.UVComBike_A2
1545        AnimationMode       = ONCE_BACKWARDS
1546        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1547      End
1548      AliasConditionState RIDER5 MOVING RIGHT_TO_CENTER REALLYDAMAGED
1549      AliasConditionState RIDER6 MOVING RIGHT_TO_CENTER REALLYDAMAGED
1550      AliasConditionState RIDER7 MOVING RIGHT_TO_CENTER REALLYDAMAGED
1551  
1552  
1553      ;Gun Bike
1554      ;------------------------------
1555      ConditionState = RIDER2
1556        Model = UVComBikeG
1557      End
1558      AliasConditionState RIDER2 MOVING
1559      AliasConditionState RIDER4
1560      AliasConditionState RIDER4 MOVING
1561      ConditionState = RIDER2 REALLYDAMAGED
1562        Model = UVComBikeG_d
1563      End
1564      AliasConditionState RIDER2 MOVING REALLYDAMAGED
1565      AliasConditionState RIDER4 REALLYDAMAGED
1566      AliasConditionState RIDER4 MOVING REALLYDAMAGED
1567     
1568      ConditionState = RIDER2 MOVING CENTER_TO_LEFT
1569        Model = UVComBikeG
1570        Animation           = UVComBikeG_A1.UVComBikeG_A1
1571        AnimationMode       = ONCE
1572        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1573      End
1574      AliasConditionState RIDER4 MOVING CENTER_TO_LEFT
1575      ConditionState = RIDER2 MOVING CENTER_TO_LEFT REALLYDAMAGED
1576        Model = UVComBikeG_d
1577        Animation           = UVComBikeG_A1.UVComBikeG_A1
1578        AnimationMode       = ONCE
1579        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1580      End
1581      AliasConditionState RIDER4 MOVING CENTER_TO_LEFT REALLYDAMAGED
1582  
1583      ConditionState = RIDER2 MOVING LEFT_TO_CENTER
1584        Model = UVComBikeG
1585        Animation           = UVComBikeG_A1.UVComBikeG_A1
1586        AnimationMode       = ONCE_BACKWARDS
1587        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1588      End
1589      AliasConditionState RIDER4 MOVING LEFT_TO_CENTER
1590      ConditionState = RIDER2 MOVING LEFT_TO_CENTER REALLYDAMAGED
1591        Model = UVComBikeG_d
1592        Animation           = UVComBikeG_A1.UVComBikeG_A1
1593        AnimationMode       = ONCE_BACKWARDS
1594        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1595      End
1596      AliasConditionState RIDER4 MOVING LEFT_TO_CENTER REALLYDAMAGED
1597  
1598      ConditionState = RIDER2 MOVING CENTER_TO_RIGHT
1599        Model = UVComBikeG
1600        Animation           = UVComBikeG_A2.UVComBikeG_A2
1601        AnimationMode       = ONCE
1602        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1603      End
1604      AliasConditionState RIDER4 MOVING CENTER_TO_RIGHT
1605      ConditionState = RIDER2 MOVING CENTER_TO_RIGHT REALLYDAMAGED
1606        Model = UVComBikeG_d
1607        Animation           = UVComBikeG_A2.UVComBikeG_A2
1608        AnimationMode       = ONCE
1609        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1610      End
1611      AliasConditionState RIDER4 MOVING CENTER_TO_RIGHT REALLYDAMAGED
1612  
1613      ConditionState = RIDER2 MOVING RIGHT_TO_CENTER
1614        Model = UVComBikeG
1615        Animation           = UVComBikeG_A2.UVComBikeG_A2
1616        AnimationMode       = ONCE_BACKWARDS
1617        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1618      End
1619      AliasConditionState RIDER4 MOVING RIGHT_TO_CENTER
1620      ConditionState = RIDER2 MOVING RIGHT_TO_CENTER REALLYDAMAGED
1621        Model = UVComBikeG_d
1622        Animation           = UVComBikeG_A2.UVComBikeG_A2
1623        AnimationMode       = ONCE_BACKWARDS
1624        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1625      End
1626      AliasConditionState RIDER4 MOVING RIGHT_TO_CENTER REALLYDAMAGED
1627  
1628      ;Missile Bike
1629      ;------------------------------
1630      ConditionState = RIDER3
1631        Model = UVComBikeTN
1632      End
1633      AliasConditionState RIDER3 MOVING
1634      ConditionState = RIDER3 REALLYDAMAGED
1635        Model = UVComBikeTN_d
1636      End
1637      AliasConditionState RIDER3 MOVING REALLYDAMAGED
1638    
1639      ConditionState = RIDER3 MOVING CENTER_TO_LEFT
1640        Model = UVComBikeTN
1641        Animation           = UVComBikeTN_A1.UVComBikeTN_A1
1642        AnimationMode       = ONCE
1643        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1644      End
1645      ConditionState = RIDER3 MOVING CENTER_TO_LEFT REALLYDAMAGED
1646        Model = UVComBikeTN_d
1647        Animation           = UVComBikeTN_A1.UVComBikeTN_A1
1648        AnimationMode       = ONCE
1649        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1650      End
1651  
1652      ConditionState = RIDER3 MOVING LEFT_TO_CENTER
1653        Model = UVComBikeTN
1654        Animation           = UVComBikeTN_A1.UVComBikeTN_A1
1655        AnimationMode       = ONCE_BACKWARDS
1656        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1657      End
1658      ConditionState = RIDER3 MOVING LEFT_TO_CENTER REALLYDAMAGED
1659        Model = UVComBikeTN_d
1660        Animation           = UVComBikeTN_A1.UVComBikeTN_A1
1661        AnimationMode       = ONCE_BACKWARDS
1662        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1663      End
1664  
1665      ConditionState = RIDER3 MOVING CENTER_TO_RIGHT
1666        Model = UVComBikeTN
1667        Animation           = UVComBikeTN_A2.UVComBikeTN_A2
1668        AnimationMode       = ONCE
1669        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1670      End
1671      ConditionState = RIDER3 MOVING CENTER_TO_RIGHT REALLYDAMAGED
1672        Model = UVComBikeTN_d
1673        Animation           = UVComBikeTN_A2.UVComBikeTN_A2
1674        AnimationMode       = ONCE
1675        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1676      End
1677  
1678      ConditionState = RIDER3 MOVING RIGHT_TO_CENTER
1679        Model = UVComBikeTN
1680        Animation           = UVComBikeTN_A2.UVComBikeTN_A2
1681        AnimationMode       = ONCE_BACKWARDS
1682        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1683      End
1684      ConditionState = RIDER3 MOVING RIGHT_TO_CENTER REALLYDAMAGED
1685        Model = UVComBikeTN_d
1686        Animation           = UVComBikeTN_A2.UVComBikeTN_A2
1687        AnimationMode       = ONCE_BACKWARDS
1688        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
1689      End
1690  
1691      TrackMarks = EXTireTrack03.tga
1692  
1693      Dust                        = CombatBikeDust
1694      DirtSpray                   = CombatBikeDirtSpray
1695      PowerslideSpray             = CombatBikeDirtPowerSlide
1696  
1697      ; These parameters are only used if the model has a separate suspension, 
1698      ; and the locomotor has HasSuspension = Yes.
1699      LeftFrontTireBone           = Tire01
1700      LeftRearTireBone            = Tire00
1701      TireRotationMultiplier      = 0.2   ; this * speed = rotation.
1702      PowerslideRotationAddition  = 2.5   ; This speed is added to the rotation speed when powersliding.
1703  
1704    End
1705  
1706    Draw = W3DModelDraw ModuleTag_Rider01
1707      OkToChangeModelColor = Yes
1708  
1709      DefaultConditionState
1710        ;**************************************************
1711        ;*** Must have a default model in order to see
1712        ;*** house color!!!
1713        ;**************************************************
1714        Model = UIWrkr_SKN
1715        ;WeaponFireFXBone    = PRIMARY Muzzle
1716        ;WeaponLaunchBone    = PRIMARY Muzzle
1717        WeaponMuzzleFlash   = PRIMARY MuzzleFX
1718      End
1719      AliasConditionState MOVING
1720  
1721      ;Worker animations
1722      ;-----------------------
1723      ConditionState = RIDER1 
1724        Model = UIWrkr_SKN
1725        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A5
1726        AnimationMode = LOOP
1727      End
1728      ConditionState = RIDER1 MOVING
1729        Model = UIWrkr_SKN
1730        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A4
1731        AnimationMode = LOOP
1732      End
1733      ConditionState = RIDER1 MOVING CENTER_TO_LEFT
1734        Model = UIWrkr_SKN
1735        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A1
1736        AnimationMode       = ONCE
1737      End
1738      ConditionState = RIDER1 MOVING LEFT_TO_CENTER
1739        Model = UIWrkr_SKN
1740        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A1
1741        AnimationMode       = ONCE_BACKWARDS
1742      End
1743      ConditionState = RIDER1 MOVING CENTER_TO_RIGHT
1744        Model = UIWrkr_SKN
1745        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A2
1746        AnimationMode       = ONCE
1747      End
1748      ConditionState = RIDER1 MOVING RIGHT_TO_CENTER
1749        Model = UIWrkr_SKN
1750        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A2
1751        AnimationMode       = ONCE_BACKWARDS
1752      End
1753  
1754  
1755      ;Rebel animations
1756      ;-----------------------
1757      ConditionState = RIDER2 
1758        Model = UIRGrd_SKN
1759        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A5
1760        AnimationMode = LOOP
1761      End
1762      ConditionState = RIDER2 MOVING
1763        Model = UIRGrd_SKN
1764        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A4
1765        AnimationMode = LOOP
1766      End
1767      ConditionState = RIDER2 MOVING CENTER_TO_LEFT
1768        Model = UIRGrd_SKN
1769        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A1
1770        AnimationMode       = ONCE
1771      End
1772      ConditionState = RIDER2 MOVING LEFT_TO_CENTER
1773        Model = UIRGrd_SKN
1774        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A1
1775        AnimationMode       = ONCE_BACKWARDS
1776      End
1777      ConditionState = RIDER2 MOVING CENTER_TO_RIGHT
1778        Model = UIRGrd_SKN
1779        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A2
1780        AnimationMode       = ONCE
1781      End
1782      ConditionState = RIDER2 MOVING RIGHT_TO_CENTER
1783        Model = UIRGrd_SKN
1784        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A2
1785        AnimationMode       = ONCE_BACKWARDS
1786      End
1787  
1788      ;RPG Trooper animations
1789      ;-----------------------
1790      ConditionState = RIDER3 
1791        Model = UITunF_SKN2
1792        Animation           = UITunF_SKL.UITunF_CmBk_A5
1793        AnimationMode = LOOP
1794      End
1795      ConditionState = RIDER3 MOVING
1796        Model = UITunF_SKN2
1797        Animation           = UITunF_SKL.UITunF_CmBk_A4
1798        AnimationMode = LOOP
1799      End
1800      ConditionState = RIDER3 MOVING CENTER_TO_LEFT
1801        Model = UITunF_SKN2
1802        Animation           = UITunF_SKL.UITunF_CmBk_A1
1803        AnimationMode       = ONCE
1804      End
1805      ConditionState = RIDER3 MOVING LEFT_TO_CENTER
1806        Model = UITunF_SKN2
1807        Animation           = UITunF_SKL.UITunF_CmBk_A1
1808        AnimationMode       = ONCE_BACKWARDS
1809      End
1810      ConditionState = RIDER3 MOVING CENTER_TO_RIGHT
1811        Model = UITunF_SKN2
1812        Animation           = UITunF_SKL.UITunF_CmBk_A2
1813        AnimationMode       = ONCE
1814      End
1815      ConditionState = RIDER3 MOVING RIGHT_TO_CENTER
1816        Model = UITunF_SKN2
1817        Animation           = UITunF_SKL.UITunF_CmBk_A2
1818        AnimationMode       = ONCE_BACKWARDS
1819      End
1820  
1821      ;Jarmen Kell animations
1822      ;-----------------------
1823      ConditionState = RIDER4 
1824        Model = UIHERO_SKN
1825        Animation           = UIHERO_SKL.UIHERO_CmBk_A5
1826        AnimationMode = LOOP
1827      End
1828      ConditionState = RIDER4 MOVING
1829        Model = UIHERO_SKN
1830        Animation           = UIHERO_SKL.UIHERO_CmBk_A4
1831        AnimationMode = LOOP
1832      End
1833      ConditionState = RIDER4 MOVING CENTER_TO_LEFT
1834        Model = UIHERO_SKN
1835        Animation           = UIHERO_SKL.UIHERO_CmBk_A1
1836        AnimationMode       = ONCE
1837      End
1838      ConditionState = RIDER4 MOVING LEFT_TO_CENTER
1839        Model = UIHERO_SKN
1840        Animation           = UIHERO_SKL.UIHERO_CmBk_A1
1841        AnimationMode       = ONCE_BACKWARDS
1842      End
1843      ConditionState = RIDER4 MOVING CENTER_TO_RIGHT
1844        Model = UIHERO_SKN
1845        Animation           = UIHERO_SKL.UIHERO_CmBk_A2
1846        AnimationMode       = ONCE
1847      End
1848      ConditionState = RIDER4 MOVING RIGHT_TO_CENTER
1849        Model = UIHERO_SKN
1850        Animation           = UIHERO_SKL.UIHERO_CmBk_A2
1851        AnimationMode       = ONCE_BACKWARDS
1852      End
1853  
1854      ;Terrorist animations
1855      ;-----------------------
1856      ConditionState = RIDER5 
1857        Model = UITRST_SKN
1858        Animation           = UITRST_SKL.UITER_CmBk_A5
1859        AnimationMode = LOOP
1860      End
1861      ConditionState = RIDER5 MOVING
1862        Model = UITRST_SKN
1863        Animation           = UITRST_SKL.UITER_CmBk_A4
1864        AnimationMode = LOOP
1865      End
1866      ConditionState = RIDER5 MOVING CENTER_TO_LEFT
1867        Model = UITRST_SKN
1868        Animation           = UITRST_SKL.UITER_CmBk_A1
1869        AnimationMode       = ONCE
1870      End
1871      ConditionState = RIDER5 MOVING LEFT_TO_CENTER
1872        Model = UITRST_SKN
1873        Animation           = UITRST_SKL.UITER_CmBk_A1
1874        AnimationMode       = ONCE_BACKWARDS
1875      End
1876      ConditionState = RIDER5 MOVING CENTER_TO_RIGHT
1877        Model = UITRST_SKN
1878        Animation           = UITRST_SKL.UITER_CmBk_A2
1879        AnimationMode       = ONCE
1880      End
1881      ConditionState = RIDER5 MOVING RIGHT_TO_CENTER
1882        Model = UITRST_SKN
1883        Animation           = UITRST_SKL.UITER_CmBk_A2
1884        AnimationMode       = ONCE_BACKWARDS
1885      End
1886  
1887      ;Hijacker animations
1888      ;-----------------------
1889      ConditionState = RIDER6 
1890        Model = UIHJCK_SKN
1891        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A5
1892        AnimationMode = LOOP
1893      End
1894      ConditionState = RIDER6 MOVING
1895        Model = UIHJCK_SKN
1896        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A4
1897        AnimationMode = LOOP
1898      End
1899      ConditionState = RIDER6 MOVING CENTER_TO_LEFT
1900        Model = UIHJCK_SKN
1901        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A1
1902        AnimationMode       = ONCE
1903      End
1904      ConditionState = RIDER6 MOVING LEFT_TO_CENTER
1905        Model = UIHJCK_SKN
1906        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A1
1907        AnimationMode       = ONCE_BACKWARDS
1908      End
1909      ConditionState = RIDER6 MOVING CENTER_TO_RIGHT
1910        Model = UIHJCK_SKN
1911        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A2
1912        AnimationMode       = ONCE
1913      End
1914      ConditionState = RIDER6 MOVING RIGHT_TO_CENTER
1915        Model = UIHJCK_SKN
1916        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A2
1917        AnimationMode       = ONCE_BACKWARDS
1918      End
1919  
1920      ;Saboteur animations
1921      ;-----------------------
1922      ConditionState = RIDER7 
1923        Model = UISabotr_SKN
1924        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A5
1925        AnimationMode = LOOP
1926      End
1927      ConditionState = RIDER7 MOVING
1928        Model = UISabotr_SKN
1929        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A4
1930        AnimationMode = LOOP
1931      End
1932      ConditionState = RIDER7 MOVING CENTER_TO_LEFT
1933        Model = UISabotr_SKN
1934        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A1
1935        AnimationMode       = ONCE
1936      End
1937      ConditionState = RIDER7 MOVING LEFT_TO_CENTER
1938        Model = UISabotr_SKN
1939        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A1
1940        AnimationMode       = ONCE_BACKWARDS
1941      End
1942      ConditionState = RIDER7 MOVING CENTER_TO_RIGHT
1943        Model = UISabotr_SKN
1944        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A2
1945        AnimationMode       = ONCE
1946      End
1947      ConditionState = RIDER7 MOVING RIGHT_TO_CENTER
1948        Model = UISabotr_SKN
1949        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A2
1950        AnimationMode       = ONCE_BACKWARDS
1951      End
1952  
1953      ConditionState = TOPPLED
1954        Model = None
1955      End
1956      AliasConditionState TOPPLED MOVING
1957  
1958    End
1959  
1960    ; ***DESIGN parameters ***
1961    DisplayName         = OBJECT:CombatBike
1962    Side                = GLA
1963    EditorSorting       = VEHICLE
1964    TransportSlotCount  = 1                 ;how many "slots" we take in a transport (0 == not transportable)
1965    WeaponSet
1966      Conditions = None
1967      Weapon = PRIMARY NONE
1968    End
1969    WeaponSet
1970      Conditions = WEAPON_RIDER2
1971      Weapon = PRIMARY GLARebelBikerMachineGun
1972    End
1973    WeaponSet
1974      Conditions = WEAPON_RIDER3
1975      Weapon = PRIMARY TunnelDefenderBikerRocketWeapon
1976    End
1977    WeaponSet
1978      Conditions = WEAPON_RIDER4
1979      Weapon = PRIMARY GLABikerKellSniperRifle
1980      Weapon = SECONDARY GLAJarmenKellVehiclePilotSniperRifle
1981      AutoChooseSources = SECONDARY NONE
1982    End
1983    WeaponSet
1984      ;Kill himself so we can use FireWeaponWhenDead to fire the real weapon -- and use UNRESISTABLE
1985      ;damage to do ini logic for type of death to play -- unresistable for success.
1986      Conditions = WEAPON_RIDER5
1987      Weapon = PRIMARY TerroristSuicideWeapon 
1988    End
1989    ArmorSet
1990      Conditions      = None
1991      Armor           = TruckArmor
1992      DamageFX        = TankDamageFX
1993    End
1994    BuildCost       = 500
1995    BuildTime       = 8.0          ;in seconds    
1996    VisionRange     = 180
1997    ShroudClearingRange = 300
1998    Prerequisites
1999      Object = GLAArmsDealer
2000      Object = GLAPalace
2001    End
2002  
2003    ExperienceValue       = 50 50 100 150    ;Experience point value at each level
2004    ExperienceRequired    = 0 200 400 800  ;Experience points needed to gain each level
2005    IsTrainable           = Yes             ;Can gain experience
2006    ;CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
2007    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
2008    ;CommandSet            = GLAVehicleCombatBikeCommandSet
2009  
2010    ; *** AUDIO Parameters ***
2011    VoiceSelect = CombatCycleVoiceSelect
2012    VoiceMove = CombatCycleVoiceMove
2013    VoiceAttack = CombatCycleVoiceAttack
2014    SoundMoveStart = CombatBikeMoveStart
2015    SoundMoveStartDamaged = CombatBikeMoveStart
2016    VoiceGuard = CombatCycleVoiceMove
2017  
2018  
2019    UnitSpecificSounds
2020      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
2021      VoiceCreate          = RocketBuggyVoiceCreate
2022      TurretMoveStart = NoSound
2023      TurretMoveLoop = TurretMoveLoop  
2024    ; Required for the W3DTruckDraw module
2025      TruckLandingSound = RocketBuggyLand
2026      TruckPowerslideSound = CombatBikeMoveStart
2027      VoiceCrush      = CombatCycleVoiceMove
2028      VoiceEnter = CombatCycleVoiceMove
2029    End
2030  
2031    ; *** ENGINEERING Parameters ***
2032    RadarPriority = UNIT
2033    KindOf = PRELOAD SELECTABLE CAN_ATTACK DONT_AUTO_CRUSH_INFANTRY ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE CLIFF_JUMPER
2034  
2035    Body = ActiveBody ModuleTag_02
2036      MaxHealth       = 100
2037      InitialHealth   = 100
2038  
2039      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
2040      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
2041      SubdualDamageCap = 200
2042      SubdualDamageHealRate = 500
2043      SubdualDamageHealAmount = 50
2044    End
2045    Behavior = AIUpdateInterface ModuleTag_03
2046      Turret
2047        TurretTurnRate = 0       ; turn rate, in degrees per sec
2048        NaturalTurretAngle = 0
2049        ControlledWeaponSlots = PRIMARY SECONDARY
2050      End
2051      AutoAcquireEnemiesWhenIdle = No
2052    End
2053    Locomotor = SET_NORMAL CombatBikeGroundLocomotor CombatBikeCliffLocomotor
2054    Locomotor = SET_SLUGGISH CombatBikeTerroristGroundLocomotor CombatBikeTerroristCliffLocomotor
2055    Behavior = PhysicsBehavior ModuleTag_04
2056      Mass = 15.0
2057    End
2058  
2059    Behavior = SlowDeathBehavior DeathTag_04
2060      ExemptStatus = STATUS_RIDER1 STATUS_RIDER2 STATUS_RIDER3 STATUS_RIDER4 STATUS_RIDER5 STATUS_RIDER6 STATUS_RIDER7
2061      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
2062      DestructionDelay = 0
2063      FX = INITIAL FX_BuggyNewDeathExplosion
2064      OCL = FINAL OCL_CombatBikeAirDeathStart
2065    End
2066    Behavior = SlowDeathBehavior DeathTag_05
2067      RequiredStatus = STATUS_RIDER1
2068      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
2069      DestructionDelay = 0
2070      FX = INITIAL FX_BuggyNewDeathExplosion
2071      OCL = INITIAL OCL_WorkerFlyingOffBikeDeathStart
2072      OCL = FINAL OCL_CombatBikeAirDeathStart
2073    End
2074    Behavior = SlowDeathBehavior DeathTag_06
2075      RequiredStatus = STATUS_RIDER2
2076      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
2077      DestructionDelay = 0
2078      FX = INITIAL FX_BuggyNewDeathExplosion
2079      OCL = INITIAL OCL_RebelFlyingOffBikeDeathStart
2080      OCL = FINAL OCL_CombatBikeAirDeathStart
2081    End
2082    Behavior = SlowDeathBehavior DeathTag_07
2083      RequiredStatus = STATUS_RIDER3
2084      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
2085      DestructionDelay = 0
2086      FX = INITIAL FX_BuggyNewDeathExplosion
2087      OCL = INITIAL OCL_TunnelDefenderFlyingOffBikeDeathStart
2088      OCL = FINAL OCL_CombatBikeAirDeathStart
2089    End
2090    Behavior = SlowDeathBehavior DeathTag_08
2091      RequiredStatus = STATUS_RIDER4
2092      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
2093      DestructionDelay = 0
2094      FX = INITIAL FX_BuggyNewDeathExplosion
2095      OCL = INITIAL OCL_JarmenKellFlyingOffBikeDeathStart
2096      OCL = FINAL OCL_CombatBikeAirDeathStart
2097    End
2098    Behavior = SlowDeathBehavior DeathTag_09
2099      RequiredStatus = STATUS_RIDER5
2100      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
2101      DestructionDelay = 0
2102      FX = INITIAL FX_BuggyNewDeathExplosion
2103      OCL = INITIAL OCL_TerroristFlyingOffBikeDeathStart
2104      OCL = FINAL OCL_CombatBikeAirDeathStart
2105    End
2106    Behavior = SlowDeathBehavior DeathTag_10
2107      RequiredStatus = STATUS_RIDER6
2108      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
2109      DestructionDelay = 0
2110      FX = INITIAL FX_BuggyNewDeathExplosion
2111      OCL = INITIAL OCL_HijackerFlyingOffBikeDeathStart
2112      OCL = FINAL OCL_CombatBikeAirDeathStart
2113    End
2114  
2115    Behavior = AutoHealBehavior ModuleTag_08
2116      HealingAmount = 2
2117      HealingDelay = 1000 ; msec
2118      TriggeredBy = Upgrade_GLAJunkRepair
2119    End
2120  
2121    Behavior = WeaponSetUpgrade ModuleTag_09
2122      TriggeredBy = Upgrade_GLABuggyAmmo
2123    End
2124  
2125    ;Create the hulk after the toppling is complete (not killed until topple anim finished).
2126    Behavior = CreateObjectDie ModuleTag_10
2127      DeathTypes = NONE +TOPPLED
2128      CreationList = OCL_CombatBike_ToppledHulk
2129    End
2130  
2131    Behavior = DestroyDie ModuleTag_11
2132      DeathTypes = NONE +CRUSHED +SPLATTED +TOPPLED
2133    End
2134  
2135    ; A crushing defeat
2136    Behavior = FXListDie ModuleTag_12
2137      DeathTypes = NONE +CRUSHED +SPLATTED
2138      DeathFX = FX_CarCrush
2139    End
2140    Behavior = CreateObjectDie ModuleTag_13
2141      DeathTypes = NONE +CRUSHED +SPLATTED
2142      CreationList = OCL_RocketBuggy_CrushEffect
2143    End
2144    Behavior = CreateCrateDie ModuleTag_14
2145      CrateData = SalvageCrateData
2146      ;CrateData = EliteTankCrateData
2147      ;CrateData = HeroicTankCrateData
2148    End
2149  
2150    Behavior                 = TransitionDamageFX ModuleTag_15
2151      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
2152      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
2153    End
2154  
2155    Behavior = RiderChangeContain ModuleTag_16
2156      ;A list of each valid rider that is allowed to ride this object. Each rider is
2157      ;assigned a modelcondition state, a weaponset flag, an object status bit, and
2158      ;a commandset override. The actual object is hidden inside the container so the 
2159      ;visible rider is fluff. Also riders are deleted (not killed) when the bike is
2160      ;destroyed, so all deaths must be OCLs on the bike.
2161      Rider1 = GLAInfantryWorker         RIDER1 WEAPON_RIDER1 STATUS_RIDER1 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
2162      Rider2 = GLAInfantryRebel          RIDER2 WEAPON_RIDER2 STATUS_RIDER2 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
2163      Rider3 = GLAInfantryTunnelDefender RIDER3 WEAPON_RIDER3 STATUS_RIDER3 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
2164      Rider4 = GLAInfantryJarmenKell     RIDER4 WEAPON_RIDER4 STATUS_RIDER4 GLAVehicleCombatBikeJarmenKellCommandSet SET_NORMAL
2165      Rider5 = GLAInfantryTerrorist      RIDER5 WEAPON_RIDER5 STATUS_RIDER5 GLAVehicleCombatBikeDefaultCommandSet SET_SLUGGISH
2166      Rider6 = GLAInfantryHijacker       RIDER6 WEAPON_RIDER6 STATUS_RIDER6 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
2167      Rider7 = GLAInfantrySaboteur       RIDER7 WEAPON_RIDER7 STATUS_RIDER7 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
2168      ScuttleDelay          = 1500
2169      ScuttleStatus         = TOPPLED
2170  
2171      ;Standard TransportContain stuff
2172      Slots                 = 1
2173      InitialPayload        = GLAInfantryTunnelDefender 1
2174      ScatterNearbyOnExit   = No
2175      HealthRegen%PerSec    = 0
2176      DamagePercentToUnits  = 100%  ; This module will Delete the rider on death, but we need to kill him as well so he doesn't pick up the bike's salvage crate.
2177      BurnedDeathToUnits    = No    ; And no Burned death.
2178      AllowInsideKindOf     = INFANTRY
2179      ExitDelay         = 250
2180      NumberOfExitPaths = 1 ; Defaults to 1.  Set 0 to not use ExitStart/ExitEnd, set higher than 1 to use ExitStart01-nn/ExitEnd01-nn
2181      GoAggressiveOnExit = Yes ; AI Will tell people to set their mood to Aggressive on exiting
2182      DoorOpenTime = 0
2183    End
2184  
2185    Behavior = AnimationSteeringUpdate ModuleTag_17
2186      MinTransitionTime = 300
2187    End
2188  
2189    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death18
2190      RequiredStatus  = STATUS_RIDER5
2191      DeathWeapon     = SuicideBikeBomb
2192      StartsActive    = Yes
2193      DeathTypes      = NONE +SUICIDED +CRUSHED +SPLATTED +LASERED +BURNED +EXPLODED
2194    End
2195  
2196    Behavior = StealthUpdate ModuleTag_19
2197      UseRiderStealth             = Yes
2198      ;StealthDelay                = 2000 ; msec
2199      ;StealthForbiddenConditions  = ATTACKING
2200      ;InnateStealth               = Yes
2201      ;OrderIdleEnemiesToAttackMeUponReveal  = Yes
2202    End
2203  
2204    Behavior = FlammableUpdate ModuleTag_21
2205      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
2206      AflameDamageAmount = 3       ; taking this much damage...
2207      AflameDamageDelay = 500       ; this often.
2208    End
2209  
2210    Geometry = BOX
2211    GeometryMajorRadius = 11.0
2212    GeometryMinorRadius = 2.5
2213    GeometryHeight = 7.5     
2214    GeometryIsSmall = Yes    
2215  
2216    Shadow = SHADOW_VOLUME
2217    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
2218  
2219  End
2220  
2221  ;------------------------------------------------------------------------------
2222  ;GLA Combat Bike with Terrorist
2223  Object GLAVehicleCombatBikeTerrorist
2224  
2225    ; *** ART Parameters ***
2226    SelectPortrait         = SUComBike_L
2227    ButtonImage            = SUComBike
2228    
2229    UpgradeCameo1 = Upgrade_GLAJunkRepair
2230    ;UpgradeCameo2 = NONE
2231    ;UpgradeCameo3 = NONE
2232    ;UpgradeCameo4 = NONE
2233    ;UpgradeCameo5 = NONE
2234  
2235    
2236    Draw = W3DTruckDraw ModuleTag_01
2237      OkToChangeModelColor = Yes
2238  
2239      ;Normal Bike
2240      ;------------------------------
2241      DefaultConditionState
2242        Model = UVComBike
2243        WeaponFireFXBone    = PRIMARY Muzzle_B
2244        WeaponLaunchBone    = PRIMARY RocketFX03
2245        WeaponMuzzleFlash   = PRIMARY MuzzleFX_B
2246        ParticleSysBone     = SMOKE CombatBikeSmokeLight
2247      End
2248      AliasConditionState RIDER1
2249      AliasConditionState RIDER1 MOVING
2250      AliasConditionState RIDER5
2251      AliasConditionState RIDER5 MOVING
2252      AliasConditionState RIDER6
2253      AliasConditionState RIDER6 MOVING
2254      AliasConditionState RIDER7
2255      AliasConditionState RIDER7 MOVING
2256      ConditionState = REALLYDAMAGED
2257        Model = UVComBike_d
2258      End
2259      AliasConditionState RIDER1 REALLYDAMAGED
2260      AliasConditionState RIDER1 MOVING REALLYDAMAGED
2261      AliasConditionState RIDER5 REALLYDAMAGED
2262      AliasConditionState RIDER5 MOVING REALLYDAMAGED
2263      AliasConditionState RIDER6 REALLYDAMAGED
2264      AliasConditionState RIDER6 MOVING REALLYDAMAGED
2265      AliasConditionState RIDER7 REALLYDAMAGED
2266      AliasConditionState RIDER7 MOVING REALLYDAMAGED
2267    
2268      ConditionState = TOPPLED
2269        Model = UVComBike
2270        Animation           = UVComBike_F.UVComBike_F
2271        AnimationMode       = ONCE
2272      End
2273      ConditionState = TOPPLED REALLYDAMAGED
2274        Model = UVComBike_d
2275        Animation           = UVComBike_F.UVComBike_F
2276        AnimationMode       = ONCE
2277      End
2278  
2279      ConditionState = RIDER1 MOVING CENTER_TO_LEFT
2280        Model = UVComBike
2281        Animation           = UVComBike_A1.UVComBike_A1
2282        AnimationMode       = ONCE
2283        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2284      End
2285      AliasConditionState RIDER5 MOVING CENTER_TO_LEFT
2286      AliasConditionState RIDER6 MOVING CENTER_TO_LEFT
2287      AliasConditionState RIDER7 MOVING CENTER_TO_LEFT
2288      ConditionState = RIDER1 MOVING CENTER_TO_LEFT REALLYDAMAGED
2289        Model = UVComBike_d
2290        Animation           = UVComBike_A1.UVComBike_A1
2291        AnimationMode       = ONCE
2292        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2293      End
2294      AliasConditionState RIDER5 MOVING CENTER_TO_LEFT REALLYDAMAGED
2295      AliasConditionState RIDER6 MOVING CENTER_TO_LEFT REALLYDAMAGED
2296      AliasConditionState RIDER7 MOVING CENTER_TO_LEFT REALLYDAMAGED
2297  
2298      ConditionState = RIDER1 MOVING LEFT_TO_CENTER
2299        Model = UVComBike
2300        Animation           = UVComBike_A1.UVComBike_A1
2301        AnimationMode       = ONCE_BACKWARDS
2302        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2303      End
2304      AliasConditionState RIDER5 MOVING LEFT_TO_CENTER
2305      AliasConditionState RIDER6 MOVING LEFT_TO_CENTER
2306      AliasConditionState RIDER7 MOVING LEFT_TO_CENTER
2307      ConditionState = RIDER1 MOVING LEFT_TO_CENTER REALLYDAMAGED
2308        Model = UVComBike_d
2309        Animation           = UVComBike_A1.UVComBike_A1
2310        AnimationMode       = ONCE_BACKWARDS
2311        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2312      End
2313      AliasConditionState RIDER5 MOVING LEFT_TO_CENTER REALLYDAMAGED
2314      AliasConditionState RIDER6 MOVING LEFT_TO_CENTER REALLYDAMAGED
2315      AliasConditionState RIDER7 MOVING LEFT_TO_CENTER REALLYDAMAGED
2316  
2317      ConditionState = RIDER1 MOVING CENTER_TO_RIGHT
2318        Model = UVComBike
2319        Animation           = UVComBike_A2.UVComBike_A2
2320        AnimationMode       = ONCE
2321        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2322      End
2323      AliasConditionState  RIDER5 MOVING CENTER_TO_RIGHT
2324      AliasConditionState  RIDER6 MOVING CENTER_TO_RIGHT
2325      AliasConditionState  RIDER7 MOVING CENTER_TO_RIGHT
2326      ConditionState = RIDER1 MOVING CENTER_TO_RIGHT REALLYDAMAGED
2327        Model = UVComBike_d
2328        Animation           = UVComBike_A2.UVComBike_A2
2329        AnimationMode       = ONCE
2330        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2331      End
2332      AliasConditionState  RIDER5 MOVING CENTER_TO_RIGHT REALLYDAMAGED
2333      AliasConditionState  RIDER6 MOVING CENTER_TO_RIGHT REALLYDAMAGED
2334      AliasConditionState  RIDER7 MOVING CENTER_TO_RIGHT REALLYDAMAGED
2335  
2336      ConditionState = RIDER1 MOVING RIGHT_TO_CENTER
2337        Model = UVComBike
2338        Animation           = UVComBike_A2.UVComBike_A2
2339        AnimationMode       = ONCE_BACKWARDS
2340        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2341      End
2342      AliasConditionState RIDER5 MOVING RIGHT_TO_CENTER
2343      AliasConditionState RIDER6 MOVING RIGHT_TO_CENTER
2344      AliasConditionState RIDER7 MOVING RIGHT_TO_CENTER
2345      ConditionState = RIDER1 MOVING RIGHT_TO_CENTER REALLYDAMAGED
2346        Model = UVComBike_d
2347        Animation           = UVComBike_A2.UVComBike_A2
2348        AnimationMode       = ONCE_BACKWARDS
2349        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2350      End
2351      AliasConditionState RIDER5 MOVING RIGHT_TO_CENTER REALLYDAMAGED
2352      AliasConditionState RIDER6 MOVING RIGHT_TO_CENTER REALLYDAMAGED
2353      AliasConditionState RIDER7 MOVING RIGHT_TO_CENTER REALLYDAMAGED
2354  
2355  
2356      ;Gun Bike
2357      ;------------------------------
2358      ConditionState = RIDER2
2359        Model = UVComBikeG
2360      End
2361      AliasConditionState RIDER2 MOVING
2362      AliasConditionState RIDER4
2363      AliasConditionState RIDER4 MOVING
2364      ConditionState = RIDER2 REALLYDAMAGED
2365        Model = UVComBikeG_d
2366      End
2367      AliasConditionState RIDER2 MOVING REALLYDAMAGED
2368      AliasConditionState RIDER4 REALLYDAMAGED
2369      AliasConditionState RIDER4 MOVING REALLYDAMAGED
2370     
2371      ConditionState = RIDER2 MOVING CENTER_TO_LEFT
2372        Model = UVComBikeG
2373        Animation           = UVComBikeG_A1.UVComBikeG_A1
2374        AnimationMode       = ONCE
2375        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2376      End
2377      AliasConditionState RIDER4 MOVING CENTER_TO_LEFT
2378      ConditionState = RIDER2 MOVING CENTER_TO_LEFT REALLYDAMAGED
2379        Model = UVComBikeG_d
2380        Animation           = UVComBikeG_A1.UVComBikeG_A1
2381        AnimationMode       = ONCE
2382        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2383      End
2384      AliasConditionState RIDER4 MOVING CENTER_TO_LEFT REALLYDAMAGED
2385  
2386      ConditionState = RIDER2 MOVING LEFT_TO_CENTER
2387        Model = UVComBikeG
2388        Animation           = UVComBikeG_A1.UVComBikeG_A1
2389        AnimationMode       = ONCE_BACKWARDS
2390        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2391      End
2392      AliasConditionState RIDER4 MOVING LEFT_TO_CENTER
2393      ConditionState = RIDER2 MOVING LEFT_TO_CENTER REALLYDAMAGED
2394        Model = UVComBikeG_d
2395        Animation           = UVComBikeG_A1.UVComBikeG_A1
2396        AnimationMode       = ONCE_BACKWARDS
2397        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2398      End
2399      AliasConditionState RIDER4 MOVING LEFT_TO_CENTER REALLYDAMAGED
2400  
2401      ConditionState = RIDER2 MOVING CENTER_TO_RIGHT
2402        Model = UVComBikeG
2403        Animation           = UVComBikeG_A2.UVComBikeG_A2
2404        AnimationMode       = ONCE
2405        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2406      End
2407      AliasConditionState RIDER4 MOVING CENTER_TO_RIGHT
2408      ConditionState = RIDER2 MOVING CENTER_TO_RIGHT REALLYDAMAGED
2409        Model = UVComBikeG_d
2410        Animation           = UVComBikeG_A2.UVComBikeG_A2
2411        AnimationMode       = ONCE
2412        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2413      End
2414      AliasConditionState RIDER4 MOVING CENTER_TO_RIGHT REALLYDAMAGED
2415  
2416      ConditionState = RIDER2 MOVING RIGHT_TO_CENTER
2417        Model = UVComBikeG
2418        Animation           = UVComBikeG_A2.UVComBikeG_A2
2419        AnimationMode       = ONCE_BACKWARDS
2420        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2421      End
2422      AliasConditionState RIDER4 MOVING RIGHT_TO_CENTER
2423      ConditionState = RIDER2 MOVING RIGHT_TO_CENTER REALLYDAMAGED
2424        Model = UVComBikeG_d
2425        Animation           = UVComBikeG_A2.UVComBikeG_A2
2426        AnimationMode       = ONCE_BACKWARDS
2427        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2428      End
2429      AliasConditionState RIDER4 MOVING RIGHT_TO_CENTER REALLYDAMAGED
2430  
2431      ;Missile Bike
2432      ;------------------------------
2433      ConditionState = RIDER3
2434        Model = UVComBikeTN
2435      End
2436      AliasConditionState RIDER3 MOVING
2437      ConditionState = RIDER3 REALLYDAMAGED
2438        Model = UVComBikeTN_d
2439      End
2440      AliasConditionState RIDER3 MOVING REALLYDAMAGED
2441    
2442      ConditionState = RIDER3 MOVING CENTER_TO_LEFT
2443        Model = UVComBikeTN
2444        Animation           = UVComBikeTN_A1.UVComBikeTN_A1
2445        AnimationMode       = ONCE
2446        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2447      End
2448      ConditionState = RIDER3 MOVING CENTER_TO_LEFT REALLYDAMAGED
2449        Model = UVComBikeTN_d
2450        Animation           = UVComBikeTN_A1.UVComBikeTN_A1
2451        AnimationMode       = ONCE
2452        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2453      End
2454  
2455      ConditionState = RIDER3 MOVING LEFT_TO_CENTER
2456        Model = UVComBikeTN
2457        Animation           = UVComBikeTN_A1.UVComBikeTN_A1
2458        AnimationMode       = ONCE_BACKWARDS
2459        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2460      End
2461      ConditionState = RIDER3 MOVING LEFT_TO_CENTER REALLYDAMAGED
2462        Model = UVComBikeTN_d
2463        Animation           = UVComBikeTN_A1.UVComBikeTN_A1
2464        AnimationMode       = ONCE_BACKWARDS
2465        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2466      End
2467  
2468      ConditionState = RIDER3 MOVING CENTER_TO_RIGHT
2469        Model = UVComBikeTN
2470        Animation           = UVComBikeTN_A2.UVComBikeTN_A2
2471        AnimationMode       = ONCE
2472        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2473      End
2474      ConditionState = RIDER3 MOVING CENTER_TO_RIGHT REALLYDAMAGED
2475        Model = UVComBikeTN_d
2476        Animation           = UVComBikeTN_A2.UVComBikeTN_A2
2477        AnimationMode       = ONCE
2478        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2479      End
2480  
2481      ConditionState = RIDER3 MOVING RIGHT_TO_CENTER
2482        Model = UVComBikeTN
2483        Animation           = UVComBikeTN_A2.UVComBikeTN_A2
2484        AnimationMode       = ONCE_BACKWARDS
2485        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2486      End
2487      ConditionState = RIDER3 MOVING RIGHT_TO_CENTER REALLYDAMAGED
2488        Model = UVComBikeTN_d
2489        Animation           = UVComBikeTN_A2.UVComBikeTN_A2
2490        AnimationMode       = ONCE_BACKWARDS
2491        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
2492      End
2493  
2494      TrackMarks = EXTireTrack03.tga
2495  
2496      Dust                        = CombatBikeDust
2497      DirtSpray                   = CombatBikeDirtSpray
2498      PowerslideSpray             = CombatBikeDirtPowerSlide
2499  
2500      ; These parameters are only used if the model has a separate suspension, 
2501      ; and the locomotor has HasSuspension = Yes.
2502      LeftFrontTireBone           = Tire01
2503      LeftRearTireBone            = Tire00
2504      TireRotationMultiplier      = 0.2   ; this * speed = rotation.
2505      PowerslideRotationAddition  = 2.5   ; This speed is added to the rotation speed when powersliding.
2506  
2507    End
2508  
2509    Draw = W3DModelDraw ModuleTag_Rider01
2510      OkToChangeModelColor = Yes
2511  
2512      DefaultConditionState
2513        ;**************************************************
2514        ;*** Must have a default model in order to see
2515        ;*** house color!!!
2516        ;**************************************************
2517        Model = UIWrkr_SKN
2518        ;WeaponFireFXBone    = PRIMARY Muzzle
2519        ;WeaponLaunchBone    = PRIMARY Muzzle
2520        WeaponMuzzleFlash   = PRIMARY MuzzleFX
2521      End
2522      AliasConditionState MOVING
2523  
2524      ;Worker animations
2525      ;-----------------------
2526      ConditionState = RIDER1 
2527        Model = UIWrkr_SKN
2528        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A5
2529        AnimationMode = LOOP
2530      End
2531      ConditionState = RIDER1 MOVING
2532        Model = UIWrkr_SKN
2533        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A4
2534        AnimationMode = LOOP
2535      End
2536      ConditionState = RIDER1 MOVING CENTER_TO_LEFT
2537        Model = UIWrkr_SKN
2538        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A1
2539        AnimationMode       = ONCE
2540      End
2541      ConditionState = RIDER1 MOVING LEFT_TO_CENTER
2542        Model = UIWrkr_SKN
2543        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A1
2544        AnimationMode       = ONCE_BACKWARDS
2545      End
2546      ConditionState = RIDER1 MOVING CENTER_TO_RIGHT
2547        Model = UIWrkr_SKN
2548        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A2
2549        AnimationMode       = ONCE
2550      End
2551      ConditionState = RIDER1 MOVING RIGHT_TO_CENTER
2552        Model = UIWrkr_SKN
2553        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A2
2554        AnimationMode       = ONCE_BACKWARDS
2555      End
2556  
2557  
2558      ;Rebel animations
2559      ;-----------------------
2560      ConditionState = RIDER2 
2561        Model = UIRGrd_SKN
2562        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A5
2563        AnimationMode = LOOP
2564      End
2565      ConditionState = RIDER2 MOVING
2566        Model = UIRGrd_SKN
2567        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A4
2568        AnimationMode = LOOP
2569      End
2570      ConditionState = RIDER2 MOVING CENTER_TO_LEFT
2571        Model = UIRGrd_SKN
2572        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A1
2573        AnimationMode       = ONCE
2574      End
2575      ConditionState = RIDER2 MOVING LEFT_TO_CENTER
2576        Model = UIRGrd_SKN
2577        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A1
2578        AnimationMode       = ONCE_BACKWARDS
2579      End
2580      ConditionState = RIDER2 MOVING CENTER_TO_RIGHT
2581        Model = UIRGrd_SKN
2582        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A2
2583        AnimationMode       = ONCE
2584      End
2585      ConditionState = RIDER2 MOVING RIGHT_TO_CENTER
2586        Model = UIRGrd_SKN
2587        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A2
2588        AnimationMode       = ONCE_BACKWARDS
2589      End
2590  
2591      ;RPG Trooper animations
2592      ;-----------------------
2593      ConditionState = RIDER3 
2594        Model = UITunF_SKN2
2595        Animation           = UITunF_SKL.UITunF_CmBk_A5
2596        AnimationMode = LOOP
2597      End
2598      ConditionState = RIDER3 MOVING
2599        Model = UITunF_SKN2
2600        Animation           = UITunF_SKL.UITunF_CmBk_A4
2601        AnimationMode = LOOP
2602      End
2603      ConditionState = RIDER3 MOVING CENTER_TO_LEFT
2604        Model = UITunF_SKN2
2605        Animation           = UITunF_SKL.UITunF_CmBk_A1
2606        AnimationMode       = ONCE
2607      End
2608      ConditionState = RIDER3 MOVING LEFT_TO_CENTER
2609        Model = UITunF_SKN2
2610        Animation           = UITunF_SKL.UITunF_CmBk_A1
2611        AnimationMode       = ONCE_BACKWARDS
2612      End
2613      ConditionState = RIDER3 MOVING CENTER_TO_RIGHT
2614        Model = UITunF_SKN2
2615        Animation           = UITunF_SKL.UITunF_CmBk_A2
2616        AnimationMode       = ONCE
2617      End
2618      ConditionState = RIDER3 MOVING RIGHT_TO_CENTER
2619        Model = UITunF_SKN2
2620        Animation           = UITunF_SKL.UITunF_CmBk_A2
2621        AnimationMode       = ONCE_BACKWARDS
2622      End
2623  
2624      ;Jarmen Kell animations
2625      ;-----------------------
2626      ConditionState = RIDER4 
2627        Model = UIHERO_SKN
2628        Animation           = UIHERO_SKL.UIHERO_CmBk_A5
2629        AnimationMode = LOOP
2630      End
2631      ConditionState = RIDER4 MOVING
2632        Model = UIHERO_SKN
2633        Animation           = UIHERO_SKL.UIHERO_CmBk_A4
2634        AnimationMode = LOOP
2635      End
2636      ConditionState = RIDER4 MOVING CENTER_TO_LEFT
2637        Model = UIHERO_SKN
2638        Animation           = UIHERO_SKL.UIHERO_CmBk_A1
2639        AnimationMode       = ONCE
2640      End
2641      ConditionState = RIDER4 MOVING LEFT_TO_CENTER
2642        Model = UIHERO_SKN
2643        Animation           = UIHERO_SKL.UIHERO_CmBk_A1
2644        AnimationMode       = ONCE_BACKWARDS
2645      End
2646      ConditionState = RIDER4 MOVING CENTER_TO_RIGHT
2647        Model = UIHERO_SKN
2648        Animation           = UIHERO_SKL.UIHERO_CmBk_A2
2649        AnimationMode       = ONCE
2650      End
2651      ConditionState = RIDER4 MOVING RIGHT_TO_CENTER
2652        Model = UIHERO_SKN
2653        Animation           = UIHERO_SKL.UIHERO_CmBk_A2
2654        AnimationMode       = ONCE_BACKWARDS
2655      End
2656  
2657      ;Terrorist animations
2658      ;-----------------------
2659      ConditionState = RIDER5 
2660        Model = UITRST_SKN
2661        Animation           = UITRST_SKL.UITER_CmBk_A5
2662        AnimationMode = LOOP
2663      End
2664      ConditionState = RIDER5 MOVING
2665        Model = UITRST_SKN
2666        Animation           = UITRST_SKL.UITER_CmBk_A4
2667        AnimationMode = LOOP
2668      End
2669      ConditionState = RIDER5 MOVING CENTER_TO_LEFT
2670        Model = UITRST_SKN
2671        Animation           = UITRST_SKL.UITER_CmBk_A1
2672        AnimationMode       = ONCE
2673      End
2674      ConditionState = RIDER5 MOVING LEFT_TO_CENTER
2675        Model = UITRST_SKN
2676        Animation           = UITRST_SKL.UITER_CmBk_A1
2677        AnimationMode       = ONCE_BACKWARDS
2678      End
2679      ConditionState = RIDER5 MOVING CENTER_TO_RIGHT
2680        Model = UITRST_SKN
2681        Animation           = UITRST_SKL.UITER_CmBk_A2
2682        AnimationMode       = ONCE
2683      End
2684      ConditionState = RIDER5 MOVING RIGHT_TO_CENTER
2685        Model = UITRST_SKN
2686        Animation           = UITRST_SKL.UITER_CmBk_A2
2687        AnimationMode       = ONCE_BACKWARDS
2688      End
2689  
2690      ;Hijacker animations
2691      ;-----------------------
2692      ConditionState = RIDER6 
2693        Model = UIHJCK_SKN
2694        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A5
2695        AnimationMode = LOOP
2696      End
2697      ConditionState = RIDER6 MOVING
2698        Model = UIHJCK_SKN
2699        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A4
2700        AnimationMode = LOOP
2701      End
2702      ConditionState = RIDER6 MOVING CENTER_TO_LEFT
2703        Model = UIHJCK_SKN
2704        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A1
2705        AnimationMode       = ONCE
2706      End
2707      ConditionState = RIDER6 MOVING LEFT_TO_CENTER
2708        Model = UIHJCK_SKN
2709        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A1
2710        AnimationMode       = ONCE_BACKWARDS
2711      End
2712      ConditionState = RIDER6 MOVING CENTER_TO_RIGHT
2713        Model = UIHJCK_SKN
2714        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A2
2715        AnimationMode       = ONCE
2716      End
2717      ConditionState = RIDER6 MOVING RIGHT_TO_CENTER
2718        Model = UIHJCK_SKN
2719        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A2
2720        AnimationMode       = ONCE_BACKWARDS
2721      End
2722  
2723      ;Saboteur animations
2724      ;-----------------------
2725      ConditionState = RIDER7 
2726        Model = UISabotr_SKN
2727        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A5
2728        AnimationMode = LOOP
2729      End
2730      ConditionState = RIDER7 MOVING
2731        Model = UISabotr_SKN
2732        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A4
2733        AnimationMode = LOOP
2734      End
2735      ConditionState = RIDER7 MOVING CENTER_TO_LEFT
2736        Model = UISabotr_SKN
2737        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A1
2738        AnimationMode       = ONCE
2739      End
2740      ConditionState = RIDER7 MOVING LEFT_TO_CENTER
2741        Model = UISabotr_SKN
2742        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A1
2743        AnimationMode       = ONCE_BACKWARDS
2744      End
2745      ConditionState = RIDER7 MOVING CENTER_TO_RIGHT
2746        Model = UISabotr_SKN
2747        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A2
2748        AnimationMode       = ONCE
2749      End
2750      ConditionState = RIDER7 MOVING RIGHT_TO_CENTER
2751        Model = UISabotr_SKN
2752        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A2
2753        AnimationMode       = ONCE_BACKWARDS
2754      End
2755  
2756      ConditionState = TOPPLED
2757        Model = None
2758      End
2759      AliasConditionState TOPPLED MOVING
2760  
2761    End
2762  
2763    ; ***DESIGN parameters ***
2764    DisplayName         = OBJECT:CombatBike
2765    Side                = GLA
2766    EditorSorting       = VEHICLE
2767    TransportSlotCount  = 1                 ;how many "slots" we take in a transport (0 == not transportable)
2768    WeaponSet
2769      Conditions = None
2770      Weapon = PRIMARY NONE
2771    End
2772    WeaponSet
2773      Conditions = WEAPON_RIDER2
2774      Weapon = PRIMARY GLARebelBikerMachineGun
2775    End
2776    WeaponSet
2777      Conditions = WEAPON_RIDER3
2778      Weapon = PRIMARY TunnelDefenderBikerRocketWeapon
2779    End
2780    WeaponSet
2781      Conditions = WEAPON_RIDER4
2782      Weapon = PRIMARY GLABikerKellSniperRifle
2783      Weapon = SECONDARY GLAJarmenKellVehiclePilotSniperRifle
2784      AutoChooseSources = SECONDARY NONE
2785    End
2786    WeaponSet
2787      ;Kill himself so we can use FireWeaponWhenDead to fire the real weapon -- and use UNRESISTABLE
2788      ;damage to do ini logic for type of death to play -- unresistable for success.
2789      Conditions = WEAPON_RIDER5
2790      Weapon = PRIMARY TerroristSuicideWeapon 
2791    End
2792    ArmorSet
2793      Conditions      = None
2794      Armor           = TruckArmor
2795      DamageFX        = TankDamageFX
2796    End
2797    BuildCost       = 500
2798    BuildTime       = 8.0          ;in seconds    
2799    VisionRange     = 180
2800    ShroudClearingRange = 300
2801  ;  Remove - JMC 8/6/03 - This is not usable by the player but I can use it for any AI if the prereqs are gone.
2802  ;  Prerequisites
2803  ;    Object = GLAArmsDealer
2804  ;    Object = GLAPalace
2805  ;  End
2806  
2807    ExperienceValue       = 50 50 100 150    ;Experience point value at each level
2808    ExperienceRequired    = 0 200 400 800  ;Experience points needed to gain each level
2809    IsTrainable           = Yes             ;Can gain experience
2810    ;CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
2811    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
2812    ;CommandSet            = GLAVehicleCombatBikeCommandSet
2813  
2814    ; *** AUDIO Parameters ***
2815    VoiceSelect = CombatCycleVoiceSelect
2816    VoiceMove = CombatCycleVoiceMove
2817    VoiceAttack = CombatCycleVoiceAttack
2818    SoundMoveStart = CombatBikeMoveStart
2819    SoundMoveStartDamaged = CombatBikeMoveStart
2820    VoiceGuard = CombatCycleVoiceMove
2821  
2822  
2823    UnitSpecificSounds
2824      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
2825      VoiceCreate          = RocketBuggyVoiceCreate
2826      TurretMoveStart = NoSound
2827      TurretMoveLoop = TurretMoveLoop  
2828    ; Required for the W3DTruckDraw module
2829      TruckLandingSound = RocketBuggyLand
2830      TruckPowerslideSound = CombatBikeMoveStart
2831      VoiceCrush      = CombatCycleVoiceMove
2832      VoiceEnter = CombatCycleVoiceMove
2833    End
2834  
2835    ; *** ENGINEERING Parameters ***
2836    RadarPriority = UNIT
2837    KindOf = PRELOAD SELECTABLE CAN_ATTACK DONT_AUTO_CRUSH_INFANTRY ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE CLIFF_JUMPER
2838  
2839    Body = ActiveBody ModuleTag_02
2840      MaxHealth       = 100
2841      InitialHealth   = 100
2842  
2843      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
2844      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
2845      SubdualDamageCap = 200
2846      SubdualDamageHealRate = 500
2847      SubdualDamageHealAmount = 50
2848    End
2849    Behavior = AIUpdateInterface ModuleTag_03
2850      Turret
2851        TurretTurnRate = 0       ; turn rate, in degrees per sec
2852        NaturalTurretAngle = 0
2853        ControlledWeaponSlots = PRIMARY SECONDARY
2854      End
2855      AutoAcquireEnemiesWhenIdle = No
2856    End
2857    Locomotor = SET_NORMAL CombatBikeGroundLocomotor CombatBikeCliffLocomotor
2858    Locomotor = SET_SLUGGISH CombatBikeTerroristGroundLocomotor CombatBikeTerroristCliffLocomotor
2859    Behavior = PhysicsBehavior ModuleTag_04
2860      Mass = 15.0
2861    End
2862  
2863    Behavior = SlowDeathBehavior DeathTag_04
2864      ExemptStatus = STATUS_RIDER1 STATUS_RIDER2 STATUS_RIDER3 STATUS_RIDER4 STATUS_RIDER5 STATUS_RIDER6 STATUS_RIDER7
2865      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
2866      DestructionDelay = 0
2867      FX = INITIAL FX_BuggyNewDeathExplosion
2868      OCL = FINAL OCL_CombatBikeAirDeathStart
2869    End
2870    Behavior = SlowDeathBehavior DeathTag_05
2871      RequiredStatus = STATUS_RIDER1
2872      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
2873      DestructionDelay = 0
2874      FX = INITIAL FX_BuggyNewDeathExplosion
2875      OCL = INITIAL OCL_WorkerFlyingOffBikeDeathStart
2876      OCL = FINAL OCL_CombatBikeAirDeathStart
2877    End
2878    Behavior = SlowDeathBehavior DeathTag_06
2879      RequiredStatus = STATUS_RIDER2
2880      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
2881      DestructionDelay = 0
2882      FX = INITIAL FX_BuggyNewDeathExplosion
2883      OCL = INITIAL OCL_RebelFlyingOffBikeDeathStart
2884      OCL = FINAL OCL_CombatBikeAirDeathStart
2885    End
2886    Behavior = SlowDeathBehavior DeathTag_07
2887      RequiredStatus = STATUS_RIDER3
2888      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
2889      DestructionDelay = 0
2890      FX = INITIAL FX_BuggyNewDeathExplosion
2891      OCL = INITIAL OCL_TunnelDefenderFlyingOffBikeDeathStart
2892      OCL = FINAL OCL_CombatBikeAirDeathStart
2893    End
2894    Behavior = SlowDeathBehavior DeathTag_08
2895      RequiredStatus = STATUS_RIDER4
2896      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
2897      DestructionDelay = 0
2898      FX = INITIAL FX_BuggyNewDeathExplosion
2899      OCL = INITIAL OCL_JarmenKellFlyingOffBikeDeathStart
2900      OCL = FINAL OCL_CombatBikeAirDeathStart
2901    End
2902    Behavior = SlowDeathBehavior DeathTag_09
2903      RequiredStatus = STATUS_RIDER5
2904      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
2905      DestructionDelay = 0
2906      FX = INITIAL FX_BuggyNewDeathExplosion
2907      OCL = INITIAL OCL_TerroristFlyingOffBikeDeathStart
2908      OCL = FINAL OCL_CombatBikeAirDeathStart
2909    End
2910    Behavior = SlowDeathBehavior DeathTag_10
2911      RequiredStatus = STATUS_RIDER6
2912      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
2913      DestructionDelay = 0
2914      FX = INITIAL FX_BuggyNewDeathExplosion
2915      OCL = INITIAL OCL_HijackerFlyingOffBikeDeathStart
2916      OCL = FINAL OCL_CombatBikeAirDeathStart
2917    End
2918  
2919    Behavior = AutoHealBehavior ModuleTag_08
2920      HealingAmount = 2
2921      HealingDelay = 1000 ; msec
2922      TriggeredBy = Upgrade_GLAJunkRepair
2923    End
2924  
2925    Behavior = WeaponSetUpgrade ModuleTag_09
2926      TriggeredBy = Upgrade_GLABuggyAmmo
2927    End
2928  
2929    ;Create the hulk after the toppling is complete (not killed until topple anim finished).
2930    Behavior = CreateObjectDie ModuleTag_10
2931      DeathTypes = NONE +TOPPLED
2932      CreationList = OCL_CombatBike_ToppledHulk
2933    End
2934  
2935    Behavior = DestroyDie ModuleTag_11
2936      DeathTypes = NONE +CRUSHED +SPLATTED +TOPPLED
2937    End
2938  
2939    ; A crushing defeat
2940    Behavior = FXListDie ModuleTag_12
2941      DeathTypes = NONE +CRUSHED +SPLATTED
2942      DeathFX = FX_CarCrush
2943    End
2944    Behavior = CreateObjectDie ModuleTag_13
2945      DeathTypes = NONE +CRUSHED +SPLATTED
2946      CreationList = OCL_RocketBuggy_CrushEffect
2947    End
2948    Behavior = CreateCrateDie ModuleTag_14
2949      CrateData = SalvageCrateData
2950      ;CrateData = EliteTankCrateData
2951      ;CrateData = HeroicTankCrateData
2952    End
2953  
2954    Behavior                 = TransitionDamageFX ModuleTag_15
2955      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
2956      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
2957    End
2958  
2959    Behavior = RiderChangeContain ModuleTag_16
2960      ;A list of each valid rider that is allowed to ride this object. Each rider is
2961      ;assigned a modelcondition state, a weaponset flag, an object status bit, and
2962      ;a commandset override. The actual object is hidden inside the container so the 
2963      ;visible rider is fluff. Also riders are deleted (not killed) when the bike is
2964      ;destroyed, so all deaths must be OCLs on the bike.
2965      Rider1 = GLAInfantryWorker         RIDER1 WEAPON_RIDER1 STATUS_RIDER1 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
2966      Rider2 = GLAInfantryRebel          RIDER2 WEAPON_RIDER2 STATUS_RIDER2 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
2967      Rider3 = GLAInfantryTunnelDefender RIDER3 WEAPON_RIDER3 STATUS_RIDER3 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
2968      Rider4 = GLAInfantryJarmenKell     RIDER4 WEAPON_RIDER4 STATUS_RIDER4 GLAVehicleCombatBikeJarmenKellCommandSet SET_NORMAL
2969      Rider5 = GLAInfantryTerrorist      RIDER5 WEAPON_RIDER5 STATUS_RIDER5 GLAVehicleCombatBikeDefaultCommandSet SET_SLUGGISH
2970      Rider6 = GLAInfantryHijacker       RIDER6 WEAPON_RIDER6 STATUS_RIDER6 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
2971      Rider7 = GLAInfantrySaboteur       RIDER7 WEAPON_RIDER7 STATUS_RIDER7 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
2972      ScuttleDelay          = 1500
2973      ScuttleStatus         = TOPPLED
2974  
2975      ;Standard TransportContain stuff
2976      Slots                 = 1
2977      InitialPayload        = GLAInfantryTerrorist 1
2978      ScatterNearbyOnExit   = No
2979      HealthRegen%PerSec    = 0
2980      DamagePercentToUnits  = 100%  ; This module will Delete the rider on death, but we need to kill him as well so he doesn't pick up the bike's salvage crate.
2981      BurnedDeathToUnits    = No    ; And no Burned death.
2982      AllowInsideKindOf     = INFANTRY
2983      ExitDelay         = 250
2984      NumberOfExitPaths = 1 ; Defaults to 1.  Set 0 to not use ExitStart/ExitEnd, set higher than 1 to use ExitStart01-nn/ExitEnd01-nn
2985      GoAggressiveOnExit = Yes ; AI Will tell people to set their mood to Aggressive on exiting
2986      DoorOpenTime = 0
2987    End
2988  
2989    Behavior = AnimationSteeringUpdate ModuleTag_17
2990      MinTransitionTime = 300
2991    End
2992  
2993    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death18
2994      RequiredStatus  = STATUS_RIDER5
2995      DeathWeapon     = SuicideBikeBomb
2996      StartsActive    = Yes
2997      DeathTypes      = NONE +SUICIDED +CRUSHED +SPLATTED +LASERED +BURNED +EXPLODED
2998    End
2999  
3000    Behavior = StealthUpdate ModuleTag_19
3001      UseRiderStealth             = Yes
3002      ;StealthDelay                = 2000 ; msec
3003      ;StealthForbiddenConditions  = ATTACKING
3004      ;InnateStealth               = Yes
3005      ;OrderIdleEnemiesToAttackMeUponReveal  = Yes
3006    End
3007  
3008    Behavior = FlammableUpdate ModuleTag_21
3009      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
3010      AflameDamageAmount = 3       ; taking this much damage...
3011      AflameDamageDelay = 500       ; this often.
3012    End
3013  
3014    Geometry = BOX
3015    GeometryMajorRadius = 11.0
3016    GeometryMinorRadius = 2.5
3017    GeometryHeight = 7.5     
3018    GeometryIsSmall = Yes    
3019  
3020    Shadow = SHADOW_VOLUME
3021    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
3022  
3023  End
3024  
3025  
3026  
3027  ;------------------------------------------------------------------------------
3028  Object GLAVehicleQuadCannon
3029  
3030    ; *** ART Parameters ***
3031    SelectPortrait         = SUQuadCannon_L
3032    ButtonImage            = SUQuadCannon
3033    
3034    UpgradeCameo1 = Upgrade_GLAAPBullets
3035    UpgradeCameo2 = Upgrade_GLAJunkRepair
3036    ;UpgradeCameo3 = XXX
3037    ;UpgradeCameo4 = XXX
3038    ;UpgradeCameo5 = XXX
3039    
3040    Draw = W3DTankTruckDraw ModuleTag_01
3041      OkToChangeModelColor = Yes
3042  
3043      ConditionState = NONE
3044        Model = UVQuadCann
3045        Turret = TURRET
3046        TurretPitch = TURRETEL
3047        WeaponFireFXBone  = PRIMARY   BarrelMS
3048        WeaponMuzzleFlash = PRIMARY   BarrelFX
3049        WeaponRecoilBone  = PRIMARY   Barrel
3050        WeaponFireFXBone  = SECONDARY BarrelMS
3051        WeaponMuzzleFlash = SECONDARY BarrelFX
3052        WeaponRecoilBone  = SECONDARY Barrel
3053        ShowSubObject = TURRET
3054        HideSubObject = TURRETUP01 TURRETUP02 BarrelFX01 BarrelFX02 BarrelFX03 BarrelFX04  ; Since we are showing one of three turrets, we need to then hide the subobject muzzleflash
3055      End
3056        
3057      ConditionState = REALLYDAMAGED
3058        Model = UVQuadCann_D
3059        Turret = TURRET
3060        TurretPitch = TURRETEL
3061        WeaponFireFXBone  = PRIMARY   BarrelMS
3062        WeaponMuzzleFlash = PRIMARY   BarrelFX
3063        WeaponRecoilBone  = PRIMARY   Barrel
3064        WeaponFireFXBone  = SECONDARY BarrelMS
3065        WeaponMuzzleFlash = SECONDARY BarrelFX
3066        WeaponRecoilBone  = SECONDARY Barrel
3067        ShowSubObject = TURRET
3068        HideSubObject = TURRETUP01 TURRETUP02 BarrelFX01 BarrelFX02 BarrelFX03 BarrelFX04
3069      End
3070      
3071      ConditionState = RUBBLE
3072        Model = UVQuadCann_D
3073        Turret = TURRET
3074        TurretPitch = TURRETEL
3075        WeaponFireFXBone  = PRIMARY   BarrelMS
3076        WeaponMuzzleFlash = PRIMARY   BarrelFX
3077        WeaponRecoilBone  = PRIMARY   Barrel
3078        WeaponFireFXBone  = SECONDARY BarrelMS
3079        WeaponMuzzleFlash = SECONDARY BarrelFX
3080        WeaponRecoilBone  = SECONDARY Barrel
3081        ShowSubObject = TURRET
3082        HideSubObject = TURRETUP01 TURRETUP02 BarrelFX01 BarrelFX02 BarrelFX03 BarrelFX04
3083      End
3084  
3085      ConditionState = WEAPONSET_CRATEUPGRADE_ONE
3086        Model = UVQuadCann
3087        Turret = TURRETUP01
3088        TurretPitch = TURRETEL01
3089        WeaponFireFXBone  = PRIMARY   BarrelUp01MS
3090        WeaponMuzzleFlash = PRIMARY   BarrelUp01FX
3091        WeaponRecoilBone  = PRIMARY   BarrelUp01
3092        WeaponFireFXBone  = SECONDARY BarrelUp01MS
3093        WeaponMuzzleFlash = SECONDARY BarrelUp01FX
3094        WeaponRecoilBone  = SECONDARY BarrelUp01
3095        ShowSubObject = TURRETUP01
3096        HideSubObject = TURRET TURRETUP02 BarrelUp01FX01 BarrelUp01FX02 BarrelUp01FX03 BarrelUp01FX04
3097      End
3098      
3099      ConditionState = WEAPONSET_CRATEUPGRADE_ONE REALLYDAMAGED
3100        Model = UVQuadCann
3101        Turret = TURRETUP01
3102        TurretPitch = TURRETEL01
3103        WeaponFireFXBone  = PRIMARY   BarrelUp01MS
3104        WeaponMuzzleFlash = PRIMARY   BarrelUp01FX
3105        WeaponRecoilBone  = PRIMARY   BarrelUp01
3106        WeaponFireFXBone  = SECONDARY BarrelUp01MS
3107        WeaponMuzzleFlash = SECONDARY BarrelUp01FX
3108        WeaponRecoilBone  = SECONDARY BarrelUp01
3109        ShowSubObject = TURRETUP01
3110        HideSubObject = TURRET TURRETUP02 BarrelUp01FX01 BarrelUp01FX02 BarrelUp01FX03 BarrelUp01FX04
3111      End
3112      
3113      ConditionState = WEAPONSET_CRATEUPGRADE_ONE RUBBLE
3114        Model = UVQuadCann
3115        Turret = TURRETUP01
3116        TurretPitch = TURRETEL01
3117        WeaponFireFXBone  = PRIMARY   BarrelUp01MS
3118        WeaponMuzzleFlash = PRIMARY   BarrelUp01FX
3119        WeaponRecoilBone  = PRIMARY   BarrelUp01
3120        WeaponFireFXBone  = SECONDARY BarrelUp01MS
3121        WeaponMuzzleFlash = SECONDARY BarrelUp01FX
3122        WeaponRecoilBone  = SECONDARY BarrelUp01
3123        ShowSubObject = TURRETUP01
3124        HideSubObject = TURRET TURRETUP02 BarrelUp01FX01 BarrelUp01FX02 BarrelUp01FX03 BarrelUp01FX04
3125      End
3126  
3127      ConditionState = WEAPONSET_CRATEUPGRADE_TWO
3128        Model = UVQuadCann
3129        Turret = TURRETUP02
3130        TurretPitch = TURRETEL02
3131        WeaponFireFXBone  = PRIMARY   BarrelUp02MS
3132        WeaponMuzzleFlash = PRIMARY   BarrelUp02FX
3133        WeaponRecoilBone  = PRIMARY   BarrelUp02
3134        WeaponFireFXBone  = SECONDARY BarrelUp02MS
3135        WeaponMuzzleFlash = SECONDARY BarrelUp02FX
3136        WeaponRecoilBone  = SECONDARY BarrelUp02
3137        ShowSubObject = TURRETUP02
3138        HideSubObject = TURRETUP01 TURRET BarrelUp02FX01 BarrelUp02FX02 BarrelUp02FX03 BarrelUp02FX04
3139      End
3140      
3141      ConditionState = WEAPONSET_CRATEUPGRADE_TWO REALLYDAMAGED
3142        Model = UVQuadCann_D
3143        Turret = TURRETUP02
3144        TurretPitch = TURRETEL02
3145        WeaponFireFXBone  = PRIMARY   BarrelUp02MS
3146        WeaponMuzzleFlash = PRIMARY   BarrelUp02FX
3147        WeaponRecoilBone  = PRIMARY   BarrelUp02
3148        WeaponFireFXBone  = SECONDARY BarrelUp02MS
3149        WeaponMuzzleFlash = SECONDARY BarrelUp02FX
3150        WeaponRecoilBone  = SECONDARY BarrelUp02
3151        ShowSubObject = TURRETUP02
3152        HideSubObject = TURRETUP01 TURRET BarrelUp02FX01 BarrelUp02FX02 BarrelUp02FX03 BarrelUp02FX04
3153      End
3154      
3155      ConditionState = WEAPONSET_CRATEUPGRADE_TWO RUBBLE
3156        Model = UVQuadCann_D
3157        Turret = TURRETUP02
3158        TurretPitch = TURRETEL02
3159        WeaponFireFXBone  = PRIMARY   BarrelUp02MS
3160        WeaponMuzzleFlash = PRIMARY   BarrelUp02FX
3161        WeaponRecoilBone  = PRIMARY   BarrelUp02
3162        WeaponFireFXBone  = SECONDARY BarrelUp02MS
3163        WeaponMuzzleFlash = SECONDARY BarrelUp02FX
3164        WeaponRecoilBone  = SECONDARY BarrelUp02
3165        ShowSubObject = TURRETUP02
3166        HideSubObject = TURRETUP01 TURRET BarrelUp02FX01 BarrelUp02FX02 BarrelUp02FX03 BarrelUp02FX04
3167      End
3168  
3169      TrackMarks = EXTnkTrack.tga
3170  
3171      TreadAnimationRate = 2.0;  amount of tread texture to move per second
3172      TreadDriveSpeedFraction = 0.3  ; fraction of locomotor speed below which treads stop moving.
3173      TreadPivotSpeedFraction = 0.6  ; fraction of locomotor speed below which we allow pivoting.
3174  
3175      Dust = RocketBuggyDust
3176      DirtSpray = RocketBuggyDirtSpray
3177   
3178      ; These parameters are only used if the model has a separate suspension, 
3179      ; and the locomotor has HasSuspension = Yes.
3180      LeftFrontTireBone = Tire01
3181      RightFrontTireBone = Tire02
3182      TireRotationMultiplier = 0.2   ; this * speed = rotation.
3183      PowerslideRotationAddition = 0   ; This unit doesn't powerslide.
3184    End
3185  
3186    ; ***DESIGN parameters ***
3187    DisplayName      = OBJECT:QuadCannon
3188    Side = GLA
3189    EditorSorting   = VEHICLE
3190    TransportSlotCount = 3                 ;how many "slots" we take in a transport (0 == not transportable)
3191    WeaponSet
3192      Conditions = None 
3193      Weapon = PRIMARY QuadCannonGun
3194      Weapon = SECONDARY QuadCannonGunAir
3195    End
3196    WeaponSet
3197      Conditions = CRATEUPGRADE_ONE 
3198      Weapon = PRIMARY QuadCannonGunUpgradeOne
3199      Weapon = SECONDARY QuadCannonGunUpgradeOneAir
3200    End
3201    WeaponSet
3202      Conditions = CRATEUPGRADE_TWO 
3203      Weapon = PRIMARY QuadCannonGunUpgradeTwo
3204      Weapon = SECONDARY QuadCannonGunUpgradeTwoAir
3205    End
3206    ArmorSet
3207      Conditions      = None
3208      Armor           = HumveeArmor
3209      DamageFX        = TankDamageFX
3210    End
3211    BuildCost       = 700
3212    BuildTime       = 6.0          ;in seconds    
3213    VisionRange     = 150
3214    ShroudClearingRange = 300
3215    Prerequisites
3216      Object = GLAArmsDealer
3217    End
3218  
3219    CommandSet          = GLAVehicleQuadCannon
3220  
3221    ExperienceValue = 50 50 100 150    ;Experience point value at each level
3222    ExperienceRequired = 0 100 150 300  ;Experience points needed to gain each level
3223    IsTrainable = Yes             ;Can gain experience
3224    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
3225    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
3226  
3227    ; *** AUDIO Parameters ***
3228    VoiceSelect           = QuadCannonVoiceSelect
3229    VoiceMove             = QuadCannonVoiceMove
3230    VoiceAttack           = QuadCannonVoiceAttack
3231    VoiceAttackAir        = QuadCannonVoiceAttackAir
3232    SoundMoveStart        = QuadCannonMoveStart
3233    SoundMoveStartDamaged = QuadCannonMoveStart
3234    VoiceGuard             = QuadCannonVoiceMove
3235    UnitSpecificSounds
3236     ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
3237      VoiceCreate         = QuadCannonVoiceCreate
3238     TurretMoveStart      = NoSound
3239     TurretMoveLoop       = TurretMoveLoop
3240     ; Required for the W3DTruckDraw module
3241     TruckLandingSound    = NoSound
3242     TruckPowerslideSound = NoSound
3243     VoiceSalvage         = QuadCannonVoiceSalvage
3244     VoiceCrush           = QuadCannonVoiceCrush
3245     VoiceEnter             = QuadCannonVoiceMove
3246    End
3247  
3248  
3249    ; *** ENGINEERING Parameters ***
3250    RadarPriority = UNIT
3251    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS SALVAGER WEAPON_SALVAGER VEHICLE SCORE
3252  
3253    Body = ActiveBody ModuleTag_02
3254      MaxHealth       = 300.0
3255      InitialHealth   = 300.0
3256  
3257      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
3258      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
3259      SubdualDamageCap = 440
3260      SubdualDamageHealRate = 500
3261      SubdualDamageHealAmount = 50
3262    End
3263    
3264    Behavior = AIUpdateInterface ModuleTag_03
3265      Turret
3266        TurretTurnRate = 360
3267        TurretPitchRate = 360
3268        AllowsPitch = Yes
3269        ControlledWeaponSlots = PRIMARY SECONDARY
3270      End
3271      AutoAcquireEnemiesWhenIdle = Yes Stealthed
3272      MoodAttackCheckRate        = 250
3273    End
3274    
3275    Locomotor = SET_NORMAL QuadCannonLocomotor
3276    
3277    Behavior = PhysicsBehavior ModuleTag_04
3278      Mass = 40.0
3279    End
3280    
3281    ; Catch fire, and explode death
3282    Behavior = SlowDeathBehavior ModuleTag_05
3283      DeathTypes = ALL -CRUSHED -SPLATTED
3284      ProbabilityModifier = 411
3285      DestructionDelay = 150
3286      DestructionDelayVariance = 250
3287      OCL = FINAL    OCL_QuadCannonDeathEffect  
3288      FX  = FINAL    FX_BattleMasterExplosionOneFinal
3289    End
3290    
3291    Behavior = AutoHealBehavior ModuleTag_06
3292      HealingAmount = 2
3293      HealingDelay = 1000 ; msec
3294      TriggeredBy = Upgrade_GLAJunkRepair
3295    End
3296  
3297    Behavior = FlammableUpdate ModuleTag_08
3298      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
3299      AflameDamageAmount = 3       ; taking this much damage...
3300      AflameDamageDelay = 500       ; this often.
3301    End
3302  
3303    Behavior                 = TransitionDamageFX ModuleTag_09
3304      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
3305      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
3306    End
3307  
3308  
3309    ; A crushing defeat
3310    Behavior = FXListDie ModuleTag_10
3311      DeathTypes = NONE +CRUSHED +SPLATTED
3312      DeathFX = FX_CarCrush
3313    End
3314  
3315    Behavior = CreateCrateDie ModuleTag_11
3316      CrateData = SalvageCrateData
3317      ;CrateData = EliteTankCrateData
3318      ;CrateData = HeroicTankCrateData
3319    End
3320  
3321    Behavior = WeaponBonusUpgrade ModuleTag_12
3322      TriggeredBy = Upgrade_GLAAPBullets
3323    End 
3324  
3325    Behavior = DestroyDie ModuleTag_13
3326      DeathTypes = NONE +CRUSHED +SPLATTED
3327    End
3328  
3329    Geometry = BOX
3330    GeometryMajorRadius = 18.0
3331    GeometryMinorRadius = 7.0
3332    GeometryHeight = 11.5     
3333    GeometryIsSmall = No
3334    Shadow = SHADOW_VOLUME
3335    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
3336  
3337  End
3338  
3339  ;------------------------------------------------------------------------------
3340  ;Also called Toxin Tractor && ToxinTractor
3341  Object GLAVehicleToxinTruck
3342  
3343    ; *** ART Parameters ***
3344    SelectPortrait         = SUToxinTractor_L
3345    ButtonImage            = SUToxinTractor
3346    
3347    UpgradeCameo1 = Upgrade_GLAAnthraxBeta
3348    UpgradeCameo2 = Upgrade_GLAJunkRepair
3349    ;UpgradeCameo3 = NONE
3350    ;UpgradeCameo4 = NONE
3351    ;UpgradeCameo5 = NONE
3352    
3353    Draw = W3DTruckDraw ModuleTag_01
3354      OkToChangeModelColor = Yes
3355  
3356      DefaultConditionState 
3357        Model = UVToxinTrk
3358        Turret = Turret
3359        TurretPitch = TurretEL
3360        ShowSubObject = Turret
3361        HideSubObject = TurretUP01 TurretUP02
3362        WeaponFireFXBone = PRIMARY WeaponA
3363        WeaponLaunchBone = PRIMARY WeaponA
3364        WeaponFireFXBone = SECONDARY Spigot
3365        WeaponLaunchBone = SECONDARY Spigot
3366      End
3367      AliasConditionState WEAPONSET_PLAYER_UPGRADE
3368  
3369      ConditionState = USING_WEAPON_B 
3370        Model = UVToxinTrk
3371        ParticleSysBone = none ToxinPuddleContinuous
3372      END
3373      ConditionState = USING_WEAPON_B WEAPONSET_PLAYER_UPGRADE
3374        Model = UVToxinTrk
3375        ParticleSysBone = none AnthraxPuddleContinuous
3376      END
3377  
3378      ConditionState = REALLYDAMAGED
3379        Model = UVToxinTrk_D
3380      End
3381      AliasConditionState REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE
3382      AliasConditionState RUBBLE
3383      AliasConditionState WEAPONSET_PLAYER_UPGRADE RUBBLE
3384  
3385      ConditionState = USING_WEAPON_B REALLYDAMAGED
3386        Model = UVToxinTrk_D
3387        ParticleSysBone = none ToxinPuddleContinuous
3388      END
3389      ConditionState = USING_WEAPON_B REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE 
3390        Model = UVToxinTrk_D
3391        ParticleSysBone = none AnthraxPuddleContinuous
3392      END
3393  
3394  ; -------------- Turret change #1
3395      ConditionState = WEAPONSET_CRATEUPGRADE_ONE
3396        Turret = TurretUP01
3397        TurretPitch = TurretEL01
3398        ShowSubObject = TurretUP01
3399        HideSubObject = Turret TurretUP02
3400        WeaponFireFXBone = PRIMARY WeaponB
3401        WeaponLaunchBone = PRIMARY WeaponB
3402      End
3403      AliasConditionState WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_ONE
3404  
3405      ConditionState = USING_WEAPON_B WEAPONSET_CRATEUPGRADE_ONE
3406        Turret = TurretUP01
3407        TurretPitch = TurretEL01
3408        ShowSubObject = TurretUP01
3409        HideSubObject = Turret TurretUP02
3410        WeaponFireFXBone = PRIMARY WeaponB
3411        WeaponLaunchBone = PRIMARY WeaponB
3412        ParticleSysBone = none ToxinPuddleContinuous
3413      END
3414      ConditionState = USING_WEAPON_B WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_ONE
3415        Turret = TurretUP01
3416        TurretPitch = TurretEL01
3417        ShowSubObject = TurretUP01
3418        HideSubObject = Turret TurretUP02
3419        WeaponFireFXBone = PRIMARY WeaponB
3420        WeaponLaunchBone = PRIMARY WeaponB
3421        ParticleSysBone = none AnthraxPuddleContinuous
3422      END
3423  
3424      ConditionState = REALLYDAMAGED WEAPONSET_CRATEUPGRADE_ONE
3425        Model = UVToxinTrk_D
3426        Turret = TurretUP01
3427        TurretPitch = TurretEL01
3428        ShowSubObject = TurretUP01
3429        HideSubObject = Turret TurretUP02
3430        WeaponFireFXBone = PRIMARY WeaponB
3431        WeaponLaunchBone = PRIMARY WeaponB
3432      End
3433      AliasConditionState REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_ONE
3434      AliasConditionState RUBBLE WEAPONSET_CRATEUPGRADE_ONE
3435      AliasConditionState WEAPONSET_PLAYER_UPGRADE RUBBLE WEAPONSET_CRATEUPGRADE_ONE
3436  
3437      ConditionState = USING_WEAPON_B REALLYDAMAGED WEAPONSET_CRATEUPGRADE_ONE
3438        Model = UVToxinTrk_D
3439        Turret = TurretUP01
3440        TurretPitch = TurretEL01
3441        ShowSubObject = TurretUP01
3442        HideSubObject = Turret TurretUP02
3443        WeaponFireFXBone = PRIMARY WeaponB
3444        WeaponLaunchBone = PRIMARY WeaponB
3445        ParticleSysBone = none ToxinPuddleContinuous
3446      END
3447      ConditionState = USING_WEAPON_B REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_ONE 
3448        Model = UVToxinTrk_D
3449        Turret = TurretUP01
3450        TurretPitch = TurretEL01
3451        ShowSubObject = TurretUP01
3452        HideSubObject = Turret TurretUP02
3453        WeaponFireFXBone = PRIMARY WeaponB
3454        WeaponLaunchBone = PRIMARY WeaponB
3455        ParticleSysBone = none AnthraxPuddleContinuous
3456      END
3457  
3458  ; -------------- Turret change #2
3459      ConditionState = WEAPONSET_CRATEUPGRADE_TWO
3460        Turret = TurretUP02
3461        TurretPitch = TurretEL02
3462        ShowSubObject = TurretUP02
3463        HideSubObject = TurretUP01 Turret
3464        WeaponFireFXBone = PRIMARY WeaponC
3465        WeaponLaunchBone = PRIMARY WeaponC
3466      End
3467      AliasConditionState WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_TWO
3468  
3469      ConditionState = USING_WEAPON_B WEAPONSET_CRATEUPGRADE_TWO
3470        Turret = TurretUP02
3471        TurretPitch = TurretEL02
3472        ShowSubObject = TurretUP02
3473        HideSubObject = TurretUP01 Turret
3474        WeaponFireFXBone = PRIMARY WeaponC
3475        WeaponLaunchBone = PRIMARY WeaponC
3476        ParticleSysBone = none ToxinPuddleContinuous
3477      END
3478      ConditionState = USING_WEAPON_B WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_TWO
3479        Turret = TurretUP02
3480        TurretPitch = TurretEL02
3481        ShowSubObject = TurretUP02
3482        HideSubObject = TurretUP01 Turret
3483        WeaponFireFXBone = PRIMARY WeaponC
3484        WeaponLaunchBone = PRIMARY WeaponC
3485        ParticleSysBone = none AnthraxPuddleContinuous
3486      END
3487  
3488      ConditionState = REALLYDAMAGED WEAPONSET_CRATEUPGRADE_TWO
3489        Model = UVToxinTrk_D
3490        Turret = TurretUP02
3491        TurretPitch = TurretEL02
3492        ShowSubObject = TurretUP02
3493        HideSubObject = TurretUP01 Turret
3494        WeaponFireFXBone = PRIMARY WeaponC
3495        WeaponLaunchBone = PRIMARY WeaponC
3496      End
3497      AliasConditionState REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_TWO
3498      AliasConditionState RUBBLE WEAPONSET_CRATEUPGRADE_TWO
3499      AliasConditionState WEAPONSET_PLAYER_UPGRADE RUBBLE WEAPONSET_CRATEUPGRADE_TWO
3500  
3501      ConditionState = USING_WEAPON_B REALLYDAMAGED WEAPONSET_CRATEUPGRADE_TWO
3502        Model = UVToxinTrk_D
3503        Turret = TurretUP02
3504        TurretPitch = TurretEL02
3505        ShowSubObject = TurretUP02
3506        HideSubObject = TurretUP01 Turret
3507        WeaponFireFXBone = PRIMARY WeaponC
3508        WeaponLaunchBone = PRIMARY WeaponC
3509        ParticleSysBone = none ToxinPuddleContinuous
3510      END
3511      ConditionState = USING_WEAPON_B REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_TWO 
3512        Model = UVToxinTrk_D
3513        Turret = TurretUP02
3514        TurretPitch = TurretEL02
3515        ShowSubObject = TurretUP02
3516        HideSubObject = TurretUP01 Turret
3517        WeaponFireFXBone = PRIMARY WeaponC
3518        WeaponLaunchBone = PRIMARY WeaponC
3519        ParticleSysBone = none AnthraxPuddleContinuous
3520      END
3521  
3522      TrackMarks = EXTireTrack.tga
3523      LeftFrontTireBone = Tire01
3524      RightFrontTireBone = Tire02
3525      LeftRearTireBone = Tire03
3526      RightRearTireBone = Tire04
3527  
3528      TireRotationMultiplier = 0.2   ; this * speed = rotation.
3529      PowerslideRotationAddition = 0   ; This vehicle doesn't powerslide.
3530  
3531      Dust = RocketBuggyDust
3532      DirtSpray = RocketBuggyDirtSpray
3533  
3534    End
3535  
3536    ; ***DESIGN parameters ***
3537    DisplayName         = OBJECT:ToxinTruck
3538    Side                = GLA
3539    EditorSorting       = VEHICLE
3540    TransportSlotCount  = 3                 ;how many "slots" we take in a transport (0 == not transportable)
3541  
3542    WeaponSet 
3543      Conditions        = None 
3544      Weapon            = PRIMARY     ToxinTruckGun
3545      Weapon            = SECONDARY   ToxinTruckSprayer
3546      AutoChooseSources = SECONDARY   NONE ;Special attack only
3547    End
3548    WeaponSet
3549      Conditions        = PLAYER_UPGRADE 
3550      Weapon            = PRIMARY     ToxinTruckGunUpgraded
3551      Weapon            = SECONDARY   ToxinTruckSprayerUpgraded
3552      AutoChooseSources = SECONDARY   NONE ;Special attack only
3553    End
3554    WeaponSet 
3555      Conditions        = CRATEUPGRADE_ONE 
3556      Weapon            = PRIMARY     ToxinTruckGunPlusOne
3557      Weapon            = SECONDARY   ToxinTruckSprayerPlusOne
3558      AutoChooseSources = SECONDARY   NONE ;Special attack only
3559    End
3560    WeaponSet
3561      Conditions        = CRATEUPGRADE_ONE PLAYER_UPGRADE 
3562      Weapon            = PRIMARY     ToxinTruckGunUpgradedPlusOne
3563      Weapon            = SECONDARY   ToxinTruckSprayerUpgradedPlusOne
3564      AutoChooseSources = SECONDARY   NONE ;Special attack only
3565    End
3566    WeaponSet 
3567      Conditions        = CRATEUPGRADE_TWO 
3568      Weapon            = PRIMARY     ToxinTruckGunPlusTwo
3569      Weapon            = SECONDARY   ToxinTruckSprayerPlusTwo
3570      AutoChooseSources = SECONDARY   NONE ;Special attack only
3571    End
3572    WeaponSet
3573      Conditions        = CRATEUPGRADE_TWO PLAYER_UPGRADE 
3574      Weapon            = PRIMARY     ToxinTruckGunUpgradedPlusTwo
3575      Weapon            = SECONDARY   ToxinTruckSprayerUpgradedPlusTwo
3576      AutoChooseSources = SECONDARY   NONE ;Special attack only
3577    End
3578  
3579    ArmorSet
3580      Conditions        = None
3581      Armor             = ToxinTruckArmor
3582      DamageFX          = TruckDamageFX
3583    End
3584    BuildCost           = 600
3585    BuildTime           = 5.0          ;in seconds    
3586    VisionRange         = 100
3587    ShroudClearingRange = 200
3588    Prerequisites
3589      Object = GLAArmsDealer
3590    End
3591  
3592    ExperienceValue     = 50 50 100 150    ;Experience point value at each level
3593    ExperienceRequired  = 0 100 150 300  ;Experience points needed to gain each level
3594    IsTrainable         = Yes             ;Can gain experience
3595    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
3596    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
3597    CommandSet          = GLAVehicleToxinTruckCommandSet
3598  
3599    ; *** AUDIO Parameters ***
3600    VoiceSelect         = ToxinTractorVoiceSelect
3601    VoiceMove           = ToxinTractorVoiceMove
3602    VoiceGuard          = ToxinTractorVoiceMove
3603    VoiceAttack         = ToxinTractorVoiceAttack
3604    SoundMoveStart      = ToxinTractorMoveStart
3605    SoundMoveStartDamaged = ToxinTractorMoveStart
3606  
3607    UnitSpecificSounds
3608      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
3609      VoiceCreate         = ToxinTractorVoiceCreate
3610      TurretMoveStart     = NoSound
3611      TurretMoveLoop      = TurretMoveLoop
3612     TruckLandingSound    = NoSound
3613     TruckPowerslideSound = NoSound
3614      VoiceCrush      = ToxinTractorVoiceCrush
3615      VoiceEnter           = ToxinTractorVoiceMove
3616      VoicePoisonLocation = ToxinTractorVoiceAttackContam
3617  
3618    End
3619  
3620    ; *** ENGINEERING Parameters ***
3621    RadarPriority         = UNIT
3622    KindOf                = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SALVAGER WEAPON_SALVAGER SCORE
3623  
3624    Body = ActiveBody ModuleTag_02
3625      MaxHealth           = 240.0
3626      InitialHealth       = 240.0
3627  
3628      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
3629      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
3630      SubdualDamageCap = 480
3631      SubdualDamageHealRate = 500
3632      SubdualDamageHealAmount = 50
3633    End
3634  
3635    Behavior = AIUpdateInterface ModuleTag_03
3636      AutoAcquireEnemiesWhenIdle = Yes
3637      Turret
3638        TurretTurnRate            = 180
3639        TurretPitchRate           = 180
3640        AllowsPitch               = Yes
3641        MinPhysicalPitch          = -20 ; If allows pitch, the lowest I can dip down to shoot.  defaults to 0 (horizontal)
3642        TurretFireAngleSweep      = PRIMARY 8
3643        TurretSweepSpeedModifier  = PRIMARY 0.5    ; Sweep slower than you turn
3644        ControlledWeaponSlots     = PRIMARY
3645      End
3646    End
3647    Locomotor             = SET_NORMAL ToxinTruckLocomotor
3648    Behavior              = PhysicsBehavior ModuleTag_04
3649      Mass                = 50.0
3650    End
3651  
3652    Behavior                    = SlowDeathBehavior  ModuleTag_05
3653      DeathTypes                = ALL -CRUSHED -SPLATTED
3654      ProbabilityModifier       = 5
3655      ModifierBonusPerOverkillPercent = 20%  ; negative means less likely to pick this in the face of much damage, positive means more likely
3656      DestructionDelay          = 0
3657      DestructionDelayVariance  = 200
3658      FX                        = INITIAL FX_ToxinTractorDie
3659      OCL                       = INITIAL OCL_ToxinTractorDeathEffect
3660      FX                        = FINAL FX_ToxinTruckExplosionOneFinal
3661    End
3662    Behavior                    = InstantDeathBehavior  ModuleTag_06
3663      DeathTypes                = NONE +CRUSHED +SPLATTED
3664      FX                        = FX_CarCrush
3665      OCL                       = OCL_CrusaderTank_CrushEffect
3666    End
3667      
3668    Behavior = CreateCrateDie ModuleTag_07
3669      CrateData   = SalvageCrateData
3670      ;CrateData  = EliteTankCrateData
3671      ;CrateData  = HeroicTankCrateData
3672    End
3673  
3674    Behavior = WeaponSetUpgrade ModuleTag_08
3675      ; the Toxin Tractor gets this upgrade if we either buy the upgrade,
3676      ; or if it gets HEROIC status
3677      TriggeredBy   = Upgrade_GLAAnthraxBeta Upgrade_Veterancy_HEROIC
3678    End
3679    
3680    Behavior                          = TransitionDamageFX ModuleTag_11
3681      ReallyDamagedParticleSystem1  = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
3682      ReallyDamagedFXList1          = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
3683    End
3684    
3685    Behavior = AutoHealBehavior ModuleTag_12
3686      HealingAmount   = 2
3687      HealingDelay    = 1000 ; msec
3688      TriggeredBy     = Upgrade_GLAJunkRepair
3689    End
3690  
3691    Behavior = FlammableUpdate ModuleTag_21
3692      AflameDuration          = 5000         ; If I catch fire, I'll burn for this long...
3693      AflameDamageAmount      = 3       ; taking this much damage...
3694      AflameDamageDelay       = 500       ; this often.
3695    End
3696  
3697    Behavior = FireOCLAfterWeaponCooldownUpdate ModuleTag_13
3698      WeaponSlot            = SECONDARY
3699      ConflictsWith         = Upgrade_GLAAnthraxBeta Upgrade_Veterancy_HEROIC
3700      OCL                   = OCL_PoisonFieldMedium
3701      MinShotsToCreateOCL   = 4
3702      OCLLifetimePerSecond  = 10000
3703      OCLLifetimeMaxCap     = 180000
3704    End
3705    Behavior = FireOCLAfterWeaponCooldownUpdate ModuleTag_14
3706      WeaponSlot            = SECONDARY
3707      TriggeredBy           = Upgrade_GLAAnthraxBeta Upgrade_Veterancy_HEROIC
3708      OCL                   = OCL_PoisonFieldUpgradedMedium
3709      MinShotsToCreateOCL   = 4
3710      OCLLifetimePerSecond  = 10000
3711      OCLLifetimeMaxCap     = 180000
3712    End
3713  
3714    Behavior = FireWeaponWhenDeadBehavior ModuleTag_15    ;These two make the right damage field at death
3715      DeathWeapon   = ToxinShellWeapon
3716      StartsActive  = Yes   
3717      ConflictsWith = Upgrade_GLAAnthraxBeta
3718    End
3719    Behavior = FireWeaponWhenDeadBehavior ModuleTag_16
3720      DeathWeapon   = ToxinShellWeaponUpgraded
3721      StartsActive  = No   
3722      TriggeredBy = Upgrade_GLAAnthraxBeta
3723    End
3724  
3725    Geometry = BOX
3726    GeometryMajorRadius = 13.0
3727    GeometryMinorRadius = 9.0
3728    GeometryHeight = 10.0   ; set to make the projectile stream look right  
3729    GeometryIsSmall = Yes    
3730    Shadow = SHADOW_VOLUME
3731    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
3732  
3733  End
3734  
3735  
3736  
3737  
3738  ;------------------------------------------------------------------------------
3739  Object GLAVehicleBombTruck
3740  
3741    ; *** ART Parameters ***
3742    SelectPortrait         = SUBombTruck_L
3743    ButtonImage            = SUBombTruck
3744    
3745    UpgradeCameo1 = Upgrade_GLABombTruckHighExplosiveBomb
3746    UpgradeCameo2 = Upgrade_GLABombTruckBioBomb
3747    UpgradeCameo3 = Upgrade_GLAJunkRepair
3748    ;UpgradeCameo4 = NONE
3749    ;UpgradeCameo5 = NONE
3750    
3751    
3752    Draw = W3DTruckDraw ModuleTag_01
3753      OkToChangeModelColor = Yes
3754      TrackMarks = EXTireTrack.tga
3755      
3756      DefaultConditionState
3757        Model = UVBMBTRUK
3758        Animation = UVBMBTRUK.UVBMBTRUK
3759        AnimationMode = LOOP
3760  
3761        ;Display the default bombload -- and the upgrades will handle the rest!
3762        HideSubObject = Bombload02 Bombload03 Bombload04
3763      End
3764  
3765      ConditionState = REALLYDAMAGED
3766        Model = UVBMBTRUK_D
3767        Animation = UVBMBTRUK_D.UVBMBTRUK_D
3768        AnimationMode = LOOP
3769      End
3770      
3771      ConditionState = RUBBLE
3772        Model = UVBMBTRUK_D
3773      End
3774  
3775      LeftFrontTireBone = Tire01
3776      RightFrontTireBone = Tire02
3777      MidLeftFrontTireBone = Tire03
3778      MidRightFrontTireBone = Tire04
3779      LeftRearTireBone = Tire05
3780      RightRearTireBone = Tire06
3781      TireRotationMultiplier = 0.2   ; this * speed = rotation.
3782  
3783      Dust = RocketBuggyDust
3784      DirtSpray = RocketBuggyDirtSpray
3785      PowerslideSpray = RocketBuggyDirtPowerSlide
3786  
3787    End
3788  
3789    ; ***DESIGN parameters ***
3790    DisplayName      = OBJECT:BombTruck
3791    Side = GLA
3792    EditorSorting   = VEHICLE
3793    TransportSlotCount = 3                 ;how many "slots" we take in a transport (0 == not transportable)
3794    WeaponSet
3795      Conditions = None 
3796      Weapon = PRIMARY SuicideWeapon 
3797    End
3798    ArmorSet
3799      Conditions      = None
3800      Armor           = TruckArmor
3801      DamageFX        = TruckDamageFX
3802    End
3803    BuildCost       = 1200
3804    BuildTime       = 15.0          ;in seconds    
3805    VisionRange     = 150 ; Used in attack move targeting
3806    ShroudClearingRange     = 200
3807    Prerequisites
3808      Object = GLAArmsDealer
3809      Object = GLAPalace
3810    End
3811    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
3812    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
3813    CommandSet = GLAVehicleBombTruckCommandSet
3814  
3815    ; *** AUDIO Parameters ***
3816    VoiceSelect = BombTruckVoiceSelect
3817    VoiceMove = BombTruckVoiceMove
3818    VoiceGuard = BombTruckVoiceMove
3819    VoiceAttack = BombTruckVoiceAttack
3820    SoundMoveStart = BombTruckMoveStart
3821    SoundMoveStartDamaged = BombTruckMoveStart
3822    UnitSpecificSounds
3823      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
3824      VoiceCreate                   = BombTruckVoiceCreate
3825      TurretMoveStart               = NoSound
3826      TurretMoveLoop                = NoSound
3827      TruckLandingSound             = RocketBuggyLand
3828      TruckPowerslideSound          = NoSound
3829      DisguiseStarted               = BombTruckDisguiseStarted
3830      DisguiseRevealedSuccess       = BombTruckDisguiseRevealedSuccess
3831      DisguiseRevealedFailure       = BombTruckDisguiseRevealedFailure
3832      VoiceEnter = BombTruckVoiceMove
3833    End
3834  
3835    ; *** ENGINEERING Parameters ***
3836    RadarPriority = UNIT
3837    KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE DISGUISER CANNOT_RETALIATE
3838  
3839    Body = ActiveBody ModuleTag_02
3840      MaxHealth       = 220.0
3841      InitialHealth   = 220.0
3842  
3843      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
3844      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
3845      SubdualDamageCap = 440
3846      SubdualDamageHealRate = 500
3847      SubdualDamageHealAmount = 50
3848    End
3849  
3850    ExperienceValue     = 50 50 50 50  ; Experience point value at each level
3851    IsTrainable = No
3852  
3853    ;Kris: Um, bomb trucks don't gain experience.
3854    ;Behavior = VeterancyGainCreate ModuleTag_03
3855    ;  StartingLevel = VETERAN
3856    ;End
3857  
3858    Behavior = AIUpdateInterface ModuleTag_04
3859      AutoAcquireEnemiesWhenIdle = No ATTACK_BUILDINGS
3860    End
3861    Locomotor = SET_NORMAL BombTruckLocomotor
3862  
3863    Behavior = PhysicsBehavior ModuleTag_05
3864      Mass = 40.0
3865    End
3866  
3867    Behavior = AutoHealBehavior ModuleTag_06
3868      HealingAmount = 2
3869      HealingDelay = 1000 ; msec
3870      TriggeredBy = Upgrade_GLAJunkRepair
3871    End
3872  
3873    Behavior = ProductionUpdate ModuleTag_07
3874      ; nothing
3875    End
3876  
3877    Behavior = SlowDeathBehavior  ModuleTag_08
3878      DeathTypes = ALL -CRUSHED -SPLATTED
3879      ProbabilityModifier = 5
3880      ModifierBonusPerOverkillPercent = 20%  ; negative means less likely to pick this in the face of much damage, positive means more likely
3881      DestructionDelay = 0
3882      DestructionDelayVariance = 200
3883      FX = FINAL FX_BuggyNewDeathExplosion
3884      OCL = FINAL OCL_BombTruckDeathEffect
3885    End
3886  
3887    ;Behavior = DestroyDie
3888      ;nothing
3889    ;End
3890  
3891  
3892    ;************************************************************************************************
3893    ;* WHICH BOMB DO WE USE??? 
3894    ;* We have 2 damage possibilities -- (normal OR high explosive) 
3895    ;* So part 1 is inflicting the damage itself without creating effects
3896    ;* The complicated part is the part where we have 6 possible effect explosions based on 
3897    ;* all the possible upgrade combinations. Note that bio weapons don't inflict damage through
3898    ;* the explosion.
3899    ;*
3900    ;* DAMAGE COMBINATIONS (NO EFFECTS):
3901    ;* 1) Normal (doesn't have high explosive upgrade)
3902    ;* 2) High explosive (has high-explosive upgrade)
3903    ;*
3904    ;* EFFECT COMBINATIONS (NO DAMAGE):
3905    ;* 1) Normal (no upgrades)
3906    ;* 2) Bio (bio-bomb upgrade)
3907    ;* 3) Anthrax (bio-bomb and anthrax upgrade)
3908    ;* 4) High explosive (high explosive upgrade)
3909    ;* 5) High explosive bio (high explosive and bio-bomb upgrade)
3910    ;* 6) High explosive anthrax (high explosive, bio-bomb, and anthrax upgrades)
3911    ;************************************************************************************************
3912  
3913    ;************************************************************************************************
3914    ;* EXCLUSIVE DAMAGE POSSIBILITY 1 -- Normal explosion (can't have high-explosive upgrade)
3915    ;************************************************************************************************
3916    Behavior = FireWeaponWhenDeadBehavior ModuleTag_09
3917      DeathWeapon   = BombTruckDefaultBombDamage
3918      StartsActive  = Yes                      ; turned on by upgrade
3919      ConflictsWith = Upgrade_GLABombTruckHighExplosiveBomb
3920    End
3921  
3922    ;************************************************************************************************
3923    ;* EXCLUSIVE DAMAGE POSSIBILITY 2 -- High explosion (always plays if it has high-explosive upgrade)
3924    ;************************************************************************************************
3925    Behavior = FireWeaponWhenDeadBehavior ModuleTag_10
3926      DeathWeapon   = BombTruckHighExplosionBombDamage
3927      StartsActive  = No                      ; turned on by upgrade
3928      TriggeredBy   = Upgrade_GLABombTruckHighExplosiveBomb
3929    End
3930  
3931    ;************************************************************************************************
3932    ;* EXCLUSIVE EFFECT COMBINATION 1 - Regular explosion (no upgrades)
3933    ;************************************************************************************************
3934    Behavior = FireWeaponWhenDeadBehavior ModuleTag_11
3935      DeathWeapon   = BombTruckDefaultBombEffect
3936      StartsActive  = Yes                      ; turned on by upgrade
3937      ConflictsWith = Upgrade_GLABombTruckHighExplosiveBomb Upgrade_GLABombTruckBioBomb
3938    End
3939  
3940    ;************************************************************************************************
3941    ;* EXCLUSIVE EFFECT COMBINATION 2 - Bio explosion 
3942    ;* Requires:    Bio upgrade
3943    ;* Can't have:  Anthrax upgrade, high explosive upgrade
3944    ;************************************************************************************************
3945    Behavior = FireWeaponWhenDeadBehavior ModuleTag_12
3946      DeathWeapon   = BombTruckBioBombEffect
3947      StartsActive  = No                      ; turned on by upgrade
3948      TriggeredBy   = Upgrade_GLABombTruckBioBomb
3949      ConflictsWith = Upgrade_GLABombTruckHighExplosiveBomb Upgrade_GLAAnthraxBeta
3950      RequiresAllTriggers = Yes
3951    End
3952  
3953    ;************************************************************************************************
3954    ;* EXCLUSIVE EFFECT COMBINATION 3 - Anthrax explosion 
3955    ;* Requires:    Bio upgrade and anthrax upgrade
3956    ;* Can't have:  High explosive upgrade
3957    ;************************************************************************************************
3958    Behavior = FireWeaponWhenDeadBehavior ModuleTag_13
3959      DeathWeapon   = BombTruckAnthraxBombEffect
3960      StartsActive  = No                      ; turned on by upgrade
3961      TriggeredBy   = Upgrade_GLABombTruckBioBomb Upgrade_GLAAnthraxBeta
3962      ConflictsWith = Upgrade_GLABombTruckHighExplosiveBomb 
3963      RequiresAllTriggers = Yes
3964    End
3965  
3966    ;************************************************************************************************
3967    ;* EXCLUSIVE EFFECT COMBINATION 4 - High explosion
3968    ;* Requires:    High explosive upgrade
3969    ;* Can't have:  Bio upgrade and anthrax upgrade
3970    ;************************************************************************************************
3971    Behavior = FireWeaponWhenDeadBehavior ModuleTag_14
3972      DeathWeapon   = BombTruckHighExplosiveBombEffect
3973      StartsActive  = No                      ; turned on by upgrade
3974      TriggeredBy   = Upgrade_GLABombTruckHighExplosiveBomb
3975      ConflictsWith = Upgrade_GLABombTruckBioBomb
3976      RequiresAllTriggers = Yes
3977    End
3978  
3979    ;************************************************************************************************
3980    ;* EXCLUSIVE EFFECT COMBINATION 5 - High explosive bio explosion 
3981    ;* Requires:    High explosive upgrade and bio upgrade 
3982    ;* Can't have:  Anthrax upgrade
3983    ;************************************************************************************************
3984    Behavior = FireWeaponWhenDeadBehavior ModuleTag_15
3985      DeathWeapon   = BombTruckHighExplosiveBioBombEffect
3986      StartsActive  = No                      ; turned on by upgrade
3987      TriggeredBy   = Upgrade_GLABombTruckHighExplosiveBomb Upgrade_GLABombTruckBioBomb
3988      ConflictsWith = Upgrade_GLAAnthraxBeta
3989      RequiresAllTriggers = Yes
3990    End
3991  
3992    ;************************************************************************************************
3993    ;* EXCLUSIVE EFFECT COMBINATION 6 - High explosive Anthrax explosion 
3994    ;* Requires:    High explosive, Bio, and anthrax upgrade
3995    ;************************************************************************************************
3996    Behavior = FireWeaponWhenDeadBehavior ModuleTag_16
3997      DeathWeapon   = BombTruckHighExplosiveAnthraxBombEffect
3998      StartsActive  = No                      ; turned on by upgrade
3999      TriggeredBy   = Upgrade_GLABombTruckBioBomb Upgrade_GLABombTruckHighExplosiveBomb Upgrade_GLAAnthraxBeta
4000      RequiresAllTriggers = Yes
4001    End
4002  
4003    ;-------------------------------------------------------------------
4004    ; Now we get to display the payload based on upgrades!!! 
4005    ;-------------------------------------------------------------------
4006    Behavior = SubObjectsUpgrade ModuleTag_17
4007      ;*** Bio bomb load ***
4008      TriggeredBy    = Upgrade_GLABombTruckBioBomb 
4009      ConflictsWith  = Upgrade_GLABombTruckHighExplosiveBomb
4010      ShowSubObjects = Bombload02 
4011      HideSubObjects = Bombload01 Bombload03 Bombload04
4012    End
4013    Behavior = SubObjectsUpgrade ModuleTag_18
4014      ;*** High-explosive bomb load ***
4015      TriggeredBy    = Upgrade_GLABombTruckHighExplosiveBomb
4016      ConflictsWith  = Upgrade_GLABombTruckBioBomb 
4017      ShowSubObjects = Bombload03 
4018      HideSubObjects = Bombload01 Bombload02 Bombload04
4019    End
4020    Behavior = SubObjectsUpgrade ModuleTag_19
4021      ;*** High-explosive bio bomb load ***
4022      TriggeredBy    = Upgrade_GLABombTruckBioBomb Upgrade_GLABombTruckHighExplosiveBomb
4023      ShowSubObjects = Bombload04 
4024      HideSubObjects = Bombload01 Bombload02 Bombload03
4025      RequiresAllTriggers = Yes
4026    End
4027    ;-------------------------------------------------------------------
4028  
4029  
4030    Behavior = SpecialAbility ModuleTag_20
4031      SpecialPowerTemplate = SpecialAbilityDisguiseAsVehicle
4032      UpdateModuleStartsAttack = Yes
4033      InitiateSound = BombTruckVoiceDisguise
4034    End
4035    Behavior = SpecialAbilityUpdate ModuleTag_21
4036      SpecialPowerTemplate = SpecialAbilityDisguiseAsVehicle
4037      StartAbilityRange = 1000000.0
4038      ApproachRequiresLOS = No
4039    End
4040  
4041    Behavior = StealthUpdate ModuleTag_22
4042      StealthDelay                          = 1
4043      DisguisesAsTeam                       = Yes
4044      RevealDistanceFromTarget              = 100.0f
4045      OrderIdleEnemiesToAttackMeUponReveal  = Yes
4046      DisguiseFX                            = FX_BombTruckDisguise
4047      DisguiseRevealFX                      = FX_BombTruckDisguiseReveal
4048      InnateStealth                         = Yes
4049      DisguiseTransitionTime                = 2000
4050      DisguiseRevealTransitionTime          = 1000 
4051    End
4052  
4053    ; A crushing defeat
4054    Behavior = FXListDie ModuleTag_23
4055      DeathTypes = NONE +CRUSHED +SPLATTED
4056      DeathFX = FX_CarCrush
4057    End
4058    Behavior = CreateObjectDie ModuleTag_24
4059      DeathTypes = NONE +CRUSHED +SPLATTED
4060      CreationList = OCL_CrusaderTank_CrushEffect
4061    End
4062    Behavior = CreateCrateDie ModuleTag_25
4063      CrateData = SalvageCrateData
4064      ;CrateData = EliteTankCrateData
4065      ;CrateData = HeroicTankCrateData
4066    End
4067    
4068    Behavior = TransitionDamageFX ModuleTag_26
4069      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
4070      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
4071    End
4072  
4073    Behavior = FlammableUpdate ModuleTag_28
4074      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
4075      AflameDamageAmount = 3       ; taking this much damage...
4076      AflameDamageDelay = 500       ; this often.
4077    End
4078  
4079    Behavior = DestroyDie ModuleTag_29
4080      DeathTypes = NONE +CRUSHED +SPLATTED
4081    End
4082  
4083    Geometry = BOX
4084    GeometryMajorRadius = 19.0
4085    GeometryMinorRadius = 8.0
4086    GeometryHeight = 11.5     
4087    GeometryIsSmall = No    
4088    Shadow = SHADOW_VOLUME
4089    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
4090  
4091  End
4092  
4093  ;------------------------------------------------------------------------------
4094  Object GLAVehicleScudLauncher
4095  
4096    ; *** ART Parameters ***
4097    SelectPortrait         = SUScudLauncher_L
4098    ButtonImage            = SUScudLauncher
4099  
4100    UpgradeCameo1 = Upgrade_GLAJunkRepair
4101    UpgradeCameo2 = Upgrade_GLAAnthraxBeta
4102    ;UpgradeCameo3 = NONE
4103    ;UpgradeCameo4 = NONE
4104    ;UpgradeCameo5 = NONE
4105  
4106    Draw = W3DTruckDraw ModuleTag_01
4107      OkToChangeModelColor = Yes
4108  
4109      ProjectileBoneFeedbackEnabledSlots = PRIMARY SECONDARY ; WeaponLaunchBone will be shown/hidden, not just used for firing offset
4110    
4111      DefaultConditionState
4112        Model = UVScudLchr
4113        Turret = TURRET
4114        TurretPitch = TURRETEL
4115        ShowSubObject = TURRET
4116        HideSubObject = TURRETUP01 TURRETUP02
4117        WeaponLaunchBone = PRIMARY WeaponA
4118        WeaponLaunchBone = SECONDARY WeaponA
4119      End
4120  
4121      ConditionState = REALLYDAMAGED
4122        Model = UVScudLchr_d
4123      End
4124      AliasConditionState = RUBBLE
4125  
4126      ConditionState = WEAPONSET_CRATEUPGRADE_ONE
4127        Model = UVScudLchr
4128        Turret = TURRETUP01
4129        TurretPitch = TURRETEL01
4130        ShowSubObject = TURRETUP01
4131        HideSubObject = TURRET TURRETUP02
4132        WeaponLaunchBone = PRIMARY WeaponB
4133        WeaponLaunchBone = SECONDARY WeaponB
4134      End
4135  
4136      ConditionState = WEAPONSET_CRATEUPGRADE_ONE REALLYDAMAGED
4137        Model = UVScudLchr_d
4138        Turret = TURRETUP01
4139        TurretPitch = TURRETEL01
4140        ShowSubObject = TURRETUP01
4141        HideSubObject = TURRET TURRETUP02
4142        WeaponLaunchBone = PRIMARY WeaponB
4143        WeaponLaunchBone = SECONDARY WeaponB
4144      End
4145      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE RUBBLE
4146  
4147      ConditionState = WEAPONSET_CRATEUPGRADE_TWO
4148        Model = UVScudLchr
4149        Turret = TURRETUP02
4150        TurretPitch = TURRETEL02
4151        ShowSubObject = TURRETUP02
4152        HideSubObject = TURRET TURRETUP01
4153        WeaponLaunchBone = PRIMARY WeaponC
4154        WeaponLaunchBone = SECONDARY WeaponC
4155      End
4156  
4157      ConditionState = WEAPONSET_CRATEUPGRADE_TWO REALLYDAMAGED
4158        Model = UVScudLchr_d
4159        Turret = TURRETUP02
4160        TurretPitch = TURRETEL02
4161        ShowSubObject = TURRETUP02
4162        HideSubObject = TURRET TURRETUP01
4163        WeaponLaunchBone = PRIMARY WeaponC
4164        WeaponLaunchBone = SECONDARY WeaponC
4165      End
4166      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO RUBBLE
4167  
4168      TrackMarks = EXTireTrack.tga
4169  
4170      Dust = ScudLauncherDust
4171      DirtSpray = RocketBuggyDirtSpray
4172      PowerslideSpray = RocketBuggyDirtPowerSlide
4173  
4174      ; These parameters are only used if the model has a separate suspension, 
4175      ; and the locomotor has HasSuspension = Yes.
4176      LeftFrontTireBone = Tire01
4177      RightFrontTireBone = Tire05
4178      LeftRearTireBone = Tire04
4179      RightRearTireBone = Tire08
4180      MidLeftFrontTireBone = Tire02
4181      MidRightFrontTireBone = Tire06
4182      MidLeftRearTireBone = Tire03
4183      MidRightRearTireBone = Tire07
4184  
4185      TireRotationMultiplier = 0.2   ; this * speed = rotation.
4186      ;PowerslideRotationAddition = 0.0   ; This speed is added to the rotation speed when powersliding.
4187  
4188    End
4189  
4190  
4191    ; ***DESIGN parameters ***
4192  
4193    DisplayName      = OBJECT:ScudLauncher
4194    Side = GLA
4195    EditorSorting   = VEHICLE
4196    TransportSlotCount = 3                 ;how many "slots" we take in a transport (0 == not transportable)
4197  
4198    WeaponSet
4199      Conditions = None
4200      Weapon = PRIMARY SCUDLauncherGunExplosive
4201      Weapon = SECONDARY SCUDLauncherGunToxin
4202      AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON
4203      AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI
4204      PreferredAgainst = SECONDARY INFANTRY
4205      ShareWeaponReloadTime = Yes
4206    End
4207    WeaponSet
4208      Conditions = PLAYER_UPGRADE
4209      Weapon = PRIMARY SCUDLauncherGunExplosive
4210      Weapon = SECONDARY SCUDLauncherGunAnthrax
4211      AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON
4212      AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI
4213      PreferredAgainst = SECONDARY INFANTRY
4214      ShareWeaponReloadTime = Yes
4215      WeaponLockSharedAcrossSets = Yes ; This set is so similar to the default set that it can hold the weapon lock
4216    End
4217    WeaponSet
4218      Conditions = CRATEUPGRADE_ONE
4219      Weapon = PRIMARY SCUDLauncherGunExplosivePlusOne
4220      Weapon = SECONDARY SCUDLauncherGunToxinPlusOne
4221      AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON
4222      AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI
4223      PreferredAgainst = SECONDARY INFANTRY
4224      ShareWeaponReloadTime = Yes
4225      WeaponLockSharedAcrossSets = Yes ; This set is so similar to the default set that it can hold the weapon lock
4226    End
4227    WeaponSet
4228      Conditions = PLAYER_UPGRADE CRATEUPGRADE_ONE
4229      Weapon = PRIMARY SCUDLauncherGunExplosivePlusOne
4230      Weapon = SECONDARY SCUDLauncherGunAnthraxPlusOne
4231      AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON
4232      AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI
4233      PreferredAgainst = SECONDARY INFANTRY
4234      ShareWeaponReloadTime = Yes
4235      WeaponLockSharedAcrossSets = Yes ; This set is so similar to the default set that it can hold the weapon lock
4236    End
4237    WeaponSet
4238      Conditions = CRATEUPGRADE_TWO
4239      Weapon = PRIMARY SCUDLauncherGunExplosivePlusTwo
4240      Weapon = SECONDARY SCUDLauncherGunToxinPlusTwo
4241      AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON
4242      AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI
4243      PreferredAgainst = SECONDARY INFANTRY
4244      ShareWeaponReloadTime = Yes
4245      WeaponLockSharedAcrossSets = Yes ; This set is so similar to the default set that it can hold the weapon lock
4246    End
4247    WeaponSet
4248      Conditions = PLAYER_UPGRADE CRATEUPGRADE_TWO
4249      Weapon = PRIMARY SCUDLauncherGunExplosivePlusTwo
4250      Weapon = SECONDARY SCUDLauncherGunAnthraxPlusTwo
4251      AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON
4252      AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI
4253      PreferredAgainst = SECONDARY INFANTRY
4254      ShareWeaponReloadTime = Yes
4255      WeaponLockSharedAcrossSets = Yes ; This set is so similar to the default set that it can hold the weapon lock
4256    End
4257  
4258    ArmorSet
4259      Conditions      = None
4260      Armor           = TruckArmor
4261      DamageFX        = TankDamageFX
4262    End
4263    BuildCost       = 1200
4264    BuildTime       = 15.0          ;in seconds    
4265    VisionRange     = 180
4266    ShroudClearingRange = 300
4267    Prerequisites
4268      Object = GLAArmsDealer
4269      Object = GLAPalace
4270      Science = SCIENCE_ScudLauncher
4271    End
4272  
4273    ExperienceValue = 50 50 100 150   ;Experience point value at each level
4274    ExperienceRequired = 0 100 200 400  ;Experience points needed to gain each level
4275    IsTrainable = Yes             ;Can gain experience
4276    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
4277    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
4278    CommandSet           = GLAVehicleScudLauncherCommandSet
4279  
4280    ; *** AUDIO Parameters ***
4281    VoiceSelect = ScudLauncherVoiceSelect
4282    VoiceMove = ScudLauncherVoiceMove
4283    VoiceGuard = ScudLauncherVoiceMove
4284    VoiceAttack = ScudLauncherVoiceAttack
4285    SoundMoveStart = ScudLauncherMoveStart
4286    SoundMoveStartDamaged = ScudLauncherMoveStart
4287    UnitSpecificSounds
4288      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
4289      VoiceCreate       = ScudLauncherVoiceCreate
4290      TurretMoveStart = NoSound
4291      TurretMoveLoop = TurretMoveLoop
4292      TruckLandingSound = NoSound
4293      TruckPowerslideSound = NoSound
4294      VoiceCrush = ScudLauncherVoiceCrush
4295      VoiceEnter = ScudLauncherVoiceMove
4296      VoicePrimaryWeaponMode = ScudLauncherVoiceModeHiEx
4297      VoiceSecondaryWeaponMode = ScudLauncherVoiceModeAnthrax
4298    End
4299  
4300    ; *** ENGINEERING Parameters ***
4301    RadarPriority = UNIT
4302    KindOf = PRELOAD SELECTABLE CAN_ATTACK DONT_AUTO_CRUSH_INFANTRY CAN_CAST_REFLECTIONS VEHICLE SALVAGER WEAPON_SALVAGER SCORE
4303  
4304    Body = ActiveBody ModuleTag_02
4305      MaxHealth       = 180.0
4306      InitialHealth   = 180.0
4307  
4308      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
4309      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
4310      SubdualDamageCap = 360
4311      SubdualDamageHealRate = 500
4312      SubdualDamageHealAmount = 50
4313    End
4314  
4315    Behavior = AIUpdateInterface ModuleTag_03
4316      Turret
4317        TurretTurnRate = 60   ; turn rate, in degrees per sec
4318        TurretPitchRate = 60
4319        FirePitch = 90  ; Instead of aiming pitchwise at the target, it will aim here
4320        AllowsPitch = Yes
4321        ControlledWeaponSlots = PRIMARY SECONDARY
4322      End
4323      AutoAcquireEnemiesWhenIdle = No NotWhileAttacking
4324    End  
4325  
4326    Behavior = CommandButtonHuntUpdate  ModuleTag_04 ; allows use of command button hunt script with this unit. 
4327    End
4328  
4329    Locomotor = SET_NORMAL ScudLauncherLocomotor
4330    Behavior = PhysicsBehavior ModuleTag_05
4331      Mass = 40.0
4332    End
4333  
4334    Behavior = AutoHealBehavior ModuleTag_06
4335      HealingAmount = 2
4336      HealingDelay = 1000 ; msec
4337      TriggeredBy = Upgrade_GLAJunkRepair
4338    End
4339  
4340    Behavior = TransitionDamageFX ModuleTag_08
4341      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01
4342      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_ScudLauncherDamageTransition
4343    End
4344  
4345    ; Catch fire, and explode death
4346    Behavior = SlowDeathBehavior ModuleTag_09
4347      DeathTypes = ALL -CRUSHED -SPLATTED
4348      ProbabilityModifier = 50
4349      DestructionDelay = 2000
4350      DestructionDelayVariance = 300
4351      FX  = INITIAL  FX_CrusaderCatchFire
4352      OCL = FINAL    OCL_SCUDLauncherDeathEffect  
4353      FX  = FINAL    FX_ScudLauncherExplosionOneFinal
4354    End
4355  
4356    ; A crushing defeat
4357    Behavior = FXListDie ModuleTag_10
4358      DeathTypes = NONE +CRUSHED +SPLATTED
4359      DeathFX = FX_CarCrush
4360    End
4361  
4362    Behavior = CreateObjectDie ModuleTag_11
4363      DeathTypes = NONE +CRUSHED +SPLATTED
4364      CreationList = OCL_CrusaderTank_CrushEffect
4365    End
4366  
4367    Behavior = FlammableUpdate ModuleTag_21
4368      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
4369      AflameDamageAmount = 3       ; taking this much damage...
4370      AflameDamageDelay = 500       ; this often.
4371    End
4372  
4373    Behavior = DestroyDie ModuleTag_22
4374      DeathTypes = NONE +CRUSHED +SPLATTED
4375    End
4376  
4377    Behavior = WeaponSetUpgrade ModuleTag_23
4378      TriggeredBy = Upgrade_GLAAnthraxBeta
4379    End
4380  
4381    Behavior = LockWeaponCreate ModuleTag_24
4382      SlotToLock = PRIMARY ; Prevents indeterminate state plus two unpickable weapons equaling no attack.
4383    End
4384  
4385    Geometry = BOX
4386    GeometryMajorRadius = 14.0
4387    GeometryMinorRadius = 7.0
4388    GeometryHeight = 11.5     
4389    GeometryIsSmall = No
4390    Shadow = SHADOW_VOLUME   
4391    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length 
4392  
4393  End
4394  
4395  
4396  
4397  
4398  
4399  ;------------------------------------------------------------------------------
4400  ; this unit is never really "built"; building one triggers the random building of
4401  ; one of the other chassis. If you want a *specific* chassis, choose it explicitly;
4402  ; if you want a chassis at random, specify this.
4403  Object GLAVehicleTechnical
4404  
4405    ; *** ART Parameters ***
4406    SelectPortrait         = SUTechnical_L 
4407    ButtonImage            = SUTechnical
4408  
4409    Draw = W3DModelDraw ModuleTag_01
4410      DefaultConditionState
4411        ; give it a model so it'll show up in WB
4412        Model = UVTechTrck
4413      End
4414    End
4415  
4416    ; set cost and time fields here or else they won't work
4417    BuildCost       = 500
4418    BuildTime       = 3.0          ;in seconds    
4419  
4420    ; Needed to get the Veterancy Overlays on top of the Technical with his build variations.
4421    ;------------------------------------------------------------
4422    Behavior = VeterancyGainCreate ModuleTag_03
4423      StartingLevel = VETERAN
4424      ScienceRequired = SCIENCE_TechnicalTraining
4425    End
4426  
4427    Side = GLA
4428    EditorSorting = VEHICLE
4429    BuildVariations = GLAVehicleTechnicalChassisOne GLAVehicleTechnicalChassisTwo GLAVehicleTechnicalChassisThree
4430  
4431    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS SALVAGER WEAPON_SALVAGER VEHICLE TRANSPORT
4432  
4433  End
4434  
4435  ;------------------------------------------------------------------------------
4436  Object GLAVehicleTechnicalChassisOne
4437  
4438    ; *** ART Parameters ***
4439    SelectPortrait         = SUTechnical_L 
4440    ButtonImage            = SUTechnical
4441  
4442    UpgradeCameo1 = Upgrade_GLAAPBullets
4443    UpgradeCameo2 = Upgrade_GLAJunkRepair
4444    ;UpgradeCameo3 = NONE
4445    ;UpgradeCameo4 = NONE
4446    ;UpgradeCameo5 = NONE
4447  
4448    Draw = W3DTruckDraw ModuleTag_01
4449  
4450      ExtraPublicBone = Dum_Turret 
4451  
4452      DefaultConditionState
4453        Model         = UVTechTrck
4454      End
4455      ConditionState  = REALLYDAMAGED
4456        Model         = UVTechTrck_d
4457      End
4458      ConditionState  = RUBBLE
4459        Model         = UVTechTrck_d
4460      End
4461  
4462      OkToChangeModelColor        = Yes
4463      TrackMarks                  = EXTireTrack.tga
4464      Dust                        = TechnicalDust
4465      DirtSpray                   = RocketBuggyDirtSpray
4466      PowerslideSpray             = RocketBuggyDirtPowerSlide
4467  
4468      ; These parameters are only used if the model has a separate suspension, 
4469      ; and the locomotor has HasSuspension = Yes.
4470      LeftFrontTireBone           = Tire01
4471      RightFrontTireBone          = Tire02
4472      LeftRearTireBone            = Tire03
4473      RightRearTireBone           = Tire04
4474      TireRotationMultiplier      = 0.2        ; this * speed = rotation.
4475      PowerslideRotationAddition  = 2.5    ; This speed is added to the rotation speed when powersliding.
4476    End
4477  
4478    Draw = W3DModelDraw ModuleTag_02
4479  
4480      OkToChangeModelColor        = Yes
4481      AttachToBoneInAnotherModule = Dum_Turret
4482  
4483      ; ------------------ basic technical ------------------------
4484      DefaultConditionState
4485        Model = UITech_SKN
4486        Turret = Dum-TurManMVR
4487        TurretArtAngle = 180  ; this turret has art pointed 180 degrees backward
4488        HideSubObject = 20Cal 50Cal RPG MuzzleFX01 MuzzleFX02 MuzzleFX03
4489        IdleAnimation = UITech_SKL.UITech_STA 0 6
4490        IdleAnimation = UITech_SKL.UITech_IDA
4491        IdleAnimation = UITech_SKL.UITech_IDB
4492        AnimationMode = ONCE
4493        ShowSubObject = 20Cal
4494        WeaponMuzzleFlash = PRIMARY MuzzleFX01
4495        WeaponFireFXBone = PRIMARY Muzzle01
4496      End
4497  
4498      ConditionState = RUBBLE MOVING TURRET_ROTATE
4499        Animation = None
4500        HideSubObject = UITech-SKN
4501        ShowSubObject = 20Cal
4502        WeaponMuzzleFlash = PRIMARY MuzzleFX01
4503        WeaponFireFXBone = PRIMARY Muzzle01
4504      End
4505  
4506      ConditionState = MOVING
4507        Animation = UITech_SKL.UITech_MVB
4508        AnimationMode = LOOP
4509        ShowSubObject = 20Cal
4510        WeaponMuzzleFlash = PRIMARY MuzzleFX01
4511        WeaponFireFXBone = PRIMARY Muzzle01
4512      End
4513  
4514      ConditionState = TURRET_ROTATE
4515        Animation = UITech_SKL.UITech_TNA
4516        AnimationMode = LOOP
4517        ShowSubObject = 20Cal
4518        WeaponMuzzleFlash = PRIMARY MuzzleFX01
4519        WeaponFireFXBone = PRIMARY Muzzle01
4520      End
4521      AliasConditionState = TURRET_ROTATE MOVING
4522      AliasConditionState = TURRET_ROTATE FIRING_A
4523      AliasConditionState = TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
4524      AliasConditionState = TURRET_ROTATE RELOADING_A
4525      AliasConditionState = TURRET_ROTATE MOVING FIRING_A
4526      AliasConditionState = TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
4527      AliasConditionState = TURRET_ROTATE MOVING RELOADING_A
4528  
4529      ConditionState = FIRING_A 
4530        Animation = UITech_SKL.UITech_ATA
4531        AnimationMode = LOOP
4532        ShowSubObject = 20Cal
4533        WeaponMuzzleFlash = PRIMARY MuzzleFX01
4534        WeaponFireFXBone = PRIMARY Muzzle01
4535      End
4536  
4537      ; AliasConditionState is a new keyword that says,
4538      ; "give me another ConditionState exactly like the previous
4539      ; one, except with different conditions". Useful when you
4540      ; have several states that are the same with only different condition bits.
4541      AliasConditionState = BETWEEN_FIRING_SHOTS_A
4542      AliasConditionState = RELOADING_A
4543  
4544      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
4545      AliasConditionState = MOVING FIRING_A
4546      AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A
4547      AliasConditionState = MOVING RELOADING_A
4548  
4549      ; ------------------ technical with WEAPONSET_CRATEUPGRADE_ONE ------------------------
4550      ConditionState = WEAPONSET_CRATEUPGRADE_ONE
4551        IdleAnimation = UITech_SKL.UITech_STA 0 6
4552        IdleAnimation = UITech_SKL.UITech_IDA
4553        IdleAnimation = UITech_SKL.UITech_IDB
4554        AnimationMode = ONCE
4555        ShowSubObject = 50Cal
4556        WeaponMuzzleFlash = PRIMARY MuzzleFX02
4557        WeaponFireFXBone = PRIMARY Muzzle02
4558        WeaponLaunchBone = PRIMARY Muzzle02
4559      End
4560  
4561      ConditionState = WEAPONSET_CRATEUPGRADE_ONE RUBBLE MOVING TURRET_ROTATE
4562        Animation = None
4563        HideSubObject = UITech-SKN
4564        ShowSubObject = 50Cal
4565        WeaponMuzzleFlash = PRIMARY MuzzleFX02
4566        WeaponFireFXBone = PRIMARY Muzzle02
4567        WeaponLaunchBone = PRIMARY Muzzle02
4568      End
4569  
4570      ConditionState = MOVING WEAPONSET_CRATEUPGRADE_ONE
4571        Animation = UITech_SKL.UITech_MVB
4572        AnimationMode = LOOP
4573        ShowSubObject = 50Cal
4574        WeaponMuzzleFlash = PRIMARY MuzzleFX02
4575        WeaponFireFXBone = PRIMARY Muzzle02
4576        WeaponLaunchBone = PRIMARY Muzzle02
4577      End
4578  
4579      ConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE
4580        Animation = UITech_SKL.UITech_TNA
4581        AnimationMode = LOOP
4582        ShowSubObject = 50Cal
4583        WeaponMuzzleFlash = PRIMARY MuzzleFX02
4584        WeaponFireFXBone = PRIMARY Muzzle02
4585        WeaponLaunchBone = PRIMARY Muzzle02
4586      End
4587      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING
4588      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE FIRING_A
4589      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
4590      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE RELOADING_A
4591      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING FIRING_A
4592      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
4593      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING RELOADING_A
4594  
4595      ConditionState = WEAPONSET_CRATEUPGRADE_ONE FIRING_A 
4596        Animation = UITech_SKL.UITech_ATA
4597        AnimationMode = LOOP
4598        ShowSubObject = 50Cal
4599        WeaponMuzzleFlash = PRIMARY MuzzleFX02
4600        WeaponFireFXBone = PRIMARY Muzzle02
4601        WeaponLaunchBone = PRIMARY Muzzle02
4602      End
4603  
4604      ; AliasConditionState is a new keyword that says,
4605      ; "give me another ConditionState exactly like the previous
4606      ; one, except with different conditions". Useful when you
4607      ; have several states that are the same with only different condition bits.
4608      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE BETWEEN_FIRING_SHOTS_A
4609      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE RELOADING_A
4610  
4611      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
4612      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING FIRING_A
4613      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING BETWEEN_FIRING_SHOTS_A
4614      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING RELOADING_A
4615  
4616      ; ------------------ technical with WEAPONSET_CRATEUPGRADE_TWO ------------------------
4617      ConditionState = WEAPONSET_CRATEUPGRADE_TWO
4618        IdleAnimation = UITech_SKL.UITech_STA 0 6
4619        IdleAnimation = UITech_SKL.UITech_IDA
4620        IdleAnimation = UITech_SKL.UITech_IDB
4621        AnimationMode = ONCE
4622        ShowSubObject = RPG
4623        WeaponFireFXBone = PRIMARY Muzzle03
4624        WeaponLaunchBone = PRIMARY Muzzle03
4625      End
4626  
4627      ConditionState = WEAPONSET_CRATEUPGRADE_TWO RUBBLE MOVING TURRET_ROTATE
4628        Animation = None
4629        HideSubObject = UITech-SKN
4630        ShowSubObject = RPG
4631        WeaponFireFXBone = PRIMARY Muzzle03
4632        WeaponLaunchBone = PRIMARY Muzzle03
4633      End
4634  
4635      ConditionState = MOVING WEAPONSET_CRATEUPGRADE_TWO
4636        Animation = UITech_SKL.UITech_MVB
4637        AnimationMode = LOOP
4638        ShowSubObject = RPG
4639        WeaponFireFXBone = PRIMARY Muzzle03
4640        WeaponLaunchBone = PRIMARY Muzzle03
4641      End
4642  
4643      ConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE
4644        Animation = UITech_SKL.UITech_TNA
4645        AnimationMode = LOOP
4646        ShowSubObject = RPG
4647        WeaponFireFXBone = PRIMARY Muzzle03
4648        WeaponLaunchBone = PRIMARY Muzzle03
4649      End
4650      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING
4651      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE FIRING_A
4652      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
4653      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE RELOADING_A
4654      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING FIRING_A
4655      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
4656      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING RELOADING_A
4657  
4658      ConditionState = WEAPONSET_CRATEUPGRADE_TWO FIRING_A 
4659        Animation = UITech_SKL.UITech_ATA
4660        AnimationMode = LOOP
4661        ShowSubObject = RPG
4662        WeaponFireFXBone = PRIMARY Muzzle03
4663        WeaponLaunchBone = PRIMARY Muzzle03
4664      End
4665  
4666      ; AliasConditionState is a new keyword that says,
4667      ; "give me another ConditionState exactly like the previous
4668      ; one, except with different conditions". Useful when you
4669      ; have several states that are the same with only different condition bits.
4670      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO BETWEEN_FIRING_SHOTS_A
4671      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO RELOADING_A
4672  
4673      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
4674      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING FIRING_A
4675      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING BETWEEN_FIRING_SHOTS_A
4676      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING RELOADING_A
4677  
4678    End
4679  
4680    ; ***DESIGN parameters ***
4681    DisplayName         = OBJECT:Technical
4682    Side                = GLA
4683    EditorSorting       = VEHICLE
4684    TransportSlotCount  = 3                 ;how many "slots" we take in a transport (0 == not transportable)
4685  
4686    WeaponSet
4687      Conditions = None 
4688      Weapon = PRIMARY TechnicalMachineGunWeapon
4689    End
4690    WeaponSet
4691      Conditions = CRATEUPGRADE_ONE 
4692      Weapon = PRIMARY TechnicalCannonWeapon
4693    End
4694    WeaponSet
4695      Conditions = CRATEUPGRADE_TWO 
4696      Weapon = PRIMARY TechnicalRPGWeapon
4697    End
4698    ArmorSet
4699      Conditions      = None
4700      Armor           = TruckArmor
4701      DamageFX        = TruckDamageFX
4702    End
4703    ;update cost and time fields in Object GLAVehicleTechnical, or else they won't work
4704    ;BuildCost            = 300
4705    ;BuildTime            = 5.0          ;in seconds    
4706    VisionRange           = 150
4707    ShroudClearingRange   = 300
4708    Prerequisites
4709      Object = GLAArmsDealer
4710    End
4711  
4712    ExperienceValue         = 25 25 50 100    ;Experience point value at each level
4713    ExperienceRequired      = 0 50 75 150  ;Experience points needed to gain each level
4714    IsTrainable             = Yes             ;Can gain experience
4715    CrusherLevel            = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
4716    CrushableLevel          = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
4717    CommandSet              = GLAVehicleTechnicalCommandSet
4718  
4719    ; *** AUDIO Parameters ***
4720    VoiceSelect = TechnicalVoiceSelect
4721    VoiceMove = TechnicalVoiceMove
4722    VoiceGuard = TechnicalVoiceMove
4723    VoiceAttack = TechnicalVoiceAttack
4724    SoundMoveStart = TechnicalMoveStart
4725    SoundMoveStartDamaged = TechnicalMoveStart
4726    SoundEnter = HumveeEnter
4727    SoundExit = HumveeExit
4728  
4729    UnitSpecificSounds
4730    ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
4731      VoiceCreate          = TechnicalVoiceCreate
4732      TurretMoveStart = NoSound
4733      TurretMoveLoop = TurretMoveLoop
4734      TruckLandingSound = RocketBuggyLand
4735      TruckPowerslideSound = RocketBuggyPowerslide
4736      VoiceSalvage = TechnicalVoiceSalvage
4737      VoiceCrush      = TechnicalVoiceCrush
4738      VoiceUnload     = TechnicalVoiceUnload
4739      VoiceEnter = TechnicalVoiceMove
4740    End
4741  
4742    ; *** ENGINEERING Parameters ***
4743    RadarPriority = UNIT
4744    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS SALVAGER WEAPON_SALVAGER VEHICLE SCORE TRANSPORT
4745  
4746    Behavior = VeterancyGainCreate ModuleTag_03
4747      StartingLevel = VETERAN
4748      ScienceRequired = SCIENCE_TechnicalTraining
4749    End
4750  
4751    Body = ActiveBody ModuleTag_04
4752      MaxHealth       = 180
4753      InitialHealth   = 180
4754  
4755      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
4756      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
4757      SubdualDamageCap = 360
4758      SubdualDamageHealRate = 500
4759      SubdualDamageHealAmount = 50
4760    End
4761    Behavior = AIUpdateInterface ModuleTag_05
4762      Turret
4763        TurretTurnRate = 240       ; turn rate, in degrees per sec
4764        NaturalTurretAngle = 0
4765        MinIdleScanAngle = 30      ; in degrees off the natural turret angle
4766        MaxIdleScanAngle = 60      ; in degrees off the natural turret angle
4767        MinIdleScanInterval = 5000 ; in milliseconds
4768        MaxIdleScanInterval = 10000 ; in milliseconds
4769        ControlledWeaponSlots = PRIMARY SECONDARY TERTIARY
4770      End
4771      AutoAcquireEnemiesWhenIdle = Yes
4772    End
4773    Locomotor = SET_NORMAL TechnicalLocomotor
4774    Behavior = PhysicsBehavior ModuleTag_06
4775      Mass = 40.0
4776    End
4777    Behavior = AutoHealBehavior ModuleTag_07
4778      HealingAmount = 2
4779      HealingDelay = 1000 ; msec
4780      TriggeredBy = Upgrade_GLAJunkRepair
4781    End
4782  
4783    Behavior = FlammableUpdate ModuleTag_09
4784      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
4785      AflameDamageAmount = 3       ; taking this much damage...
4786      AflameDamageDelay = 500       ; this often.
4787    End
4788  
4789    Behavior                 = TransitionDamageFX ModuleTag_10
4790      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
4791      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
4792    End
4793  
4794    Behavior = DestroyDie ModuleTag_11
4795      DeathTypes = NONE +CRUSHED +SPLATTED
4796    End
4797  
4798    ; A crushing defeat
4799    Behavior = FXListDie ModuleTag_12
4800      DeathTypes = NONE +CRUSHED +SPLATTED
4801      DeathFX = FX_CarCrush
4802    End
4803    Behavior = CreateObjectDie ModuleTag_13
4804      DeathTypes = NONE +CRUSHED +SPLATTED
4805      CreationList = OCL_TechnicalJeep_CrushEffect
4806    End
4807    Behavior = CreateCrateDie ModuleTag_14
4808      CrateData = SalvageCrateData
4809      ;CrateData = EliteTankCrateData
4810      ;CrateData = HeroicTankCrateData
4811    End
4812  
4813    Behavior = SlowDeathBehavior ModuleTag_15
4814      DeathTypes = ALL -CRUSHED -SPLATTED
4815      DestructionDelay = 500
4816      DestructionDelayVariance = 1500
4817      OCL = INITIAL OCL_TechnicalAirDeathStart
4818      FX = INITIAL FX_TechnicalAirDeathGroundPart
4819      OCL = FINAL OCL_RocketBuggyAirDeath
4820      FX = FINAL FX_RocketBuggyAirDeathAirPart    ; This happens in the air
4821    End
4822  
4823    Behavior = TransportContain ModuleTag_16
4824      Slots = 5
4825      AllowInsideKindOf   = INFANTRY
4826      DamagePercentToUnits = 10%
4827      GoAggressiveOnExit = Yes ; AI Will tell people to set their mood to Aggressive on exiting
4828     End
4829  
4830    Behavior = WeaponBonusUpgrade ModuleTag_17 ; Not a full weapon set switch, just a number tweak reflected in a weapon. 
4831      TriggeredBy = Upgrade_GLAAPBullets
4832    End 
4833  
4834    Geometry = BOX
4835    GeometryMajorRadius = 18.0
4836    GeometryMinorRadius = 9.0
4837    GeometryHeight = 7.5     
4838    GeometryIsSmall = No    
4839    Shadow = SHADOW_VOLUME
4840    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
4841  
4842  End
4843  
4844  ;------------------------------------------------------------------------------
4845  ObjectReskin GLAVehicleTechnicalChassisTwo GLAVehicleTechnicalChassisOne
4846  
4847    ; *** ART Parameters ***
4848    Draw = W3DTruckDraw ModuleTag_01
4849  
4850      ExtraPublicBone = Dum_Turret 
4851  
4852      DefaultConditionState
4853        Model = UVTechVan
4854      End
4855  
4856      ConditionState = REALLYDAMAGED
4857        Model = UVTechVan_d
4858      End
4859      ConditionState = RUBBLE
4860        Model = UVTechVan_d
4861      End
4862  
4863      OkToChangeModelColor = Yes
4864      TrackMarks = EXTireTrack.tga
4865      Dust = TechnicalDust
4866  
4867      ;DirtSpray = RocketBuggyDirtSpray
4868      PowerslideSpray = RocketBuggyDirtPowerSlide
4869  
4870      ; These parameters are only used if the model has a separate suspension, 
4871      ; and the locomotor has HasSuspension = Yes.
4872      LeftFrontTireBone = Tire01
4873      RightFrontTireBone = Tire02
4874      LeftRearTireBone = Tire03
4875      RightRearTireBone = Tire04
4876      TireRotationMultiplier = 0.2        ; this * speed = rotation.
4877      PowerslideRotationAddition = 2.5    ; This speed is added to the rotation speed when powersliding.
4878    End
4879  
4880    Draw = W3DModelDraw ModuleTag_02
4881      OkToChangeModelColor = Yes
4882      AttachToBoneInAnotherModule = Dum_Turret
4883  
4884      ; ------------------ basic technical ------------------------
4885      DefaultConditionState
4886        Model = UITech_SKN
4887        Turret = Dum-TurManMVR
4888        TurretArtAngle = 180  ; this turret has art pointed 180 degrees backward
4889        HideSubObject = 20Cal 50Cal RPG MuzzleFX01 MuzzleFX02 MuzzleFX03
4890        IdleAnimation = UITech_SKL.UITech_STA 0 6
4891        IdleAnimation = UITech_SKL.UITech_IDA
4892        IdleAnimation = UITech_SKL.UITech_IDB
4893        AnimationMode = ONCE
4894        ShowSubObject = 20Cal
4895        WeaponMuzzleFlash = PRIMARY MuzzleFX01
4896        WeaponFireFXBone = PRIMARY Muzzle01
4897      End
4898  
4899      ConditionState = RUBBLE MOVING TURRET_ROTATE
4900        Animation = None
4901        HideSubObject = UITech-SKN
4902        ShowSubObject = 20Cal
4903        WeaponMuzzleFlash = PRIMARY MuzzleFX01
4904        WeaponFireFXBone = PRIMARY Muzzle01
4905      End
4906  
4907      ConditionState = MOVING
4908        Animation = UITech_SKL.UITech_MVB
4909        AnimationMode = LOOP
4910        ShowSubObject = 20Cal
4911        WeaponMuzzleFlash = PRIMARY MuzzleFX01
4912        WeaponFireFXBone = PRIMARY Muzzle01
4913      End
4914  
4915      ConditionState = TURRET_ROTATE
4916        Animation = UITech_SKL.UITech_TNA
4917        AnimationMode = LOOP
4918        ShowSubObject = 20Cal
4919        WeaponMuzzleFlash = PRIMARY MuzzleFX01
4920        WeaponFireFXBone = PRIMARY Muzzle01
4921      End
4922      AliasConditionState = TURRET_ROTATE MOVING
4923      AliasConditionState = TURRET_ROTATE FIRING_A
4924      AliasConditionState = TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
4925      AliasConditionState = TURRET_ROTATE RELOADING_A
4926      AliasConditionState = TURRET_ROTATE MOVING FIRING_A
4927      AliasConditionState = TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
4928      AliasConditionState = TURRET_ROTATE MOVING RELOADING_A
4929  
4930      ConditionState = FIRING_A 
4931        Animation = UITech_SKL.UITech_ATA
4932        AnimationMode = LOOP
4933        ShowSubObject = 20Cal
4934        WeaponMuzzleFlash = PRIMARY MuzzleFX01
4935        WeaponFireFXBone = PRIMARY Muzzle01
4936      End
4937  
4938      ; AliasConditionState is a new keyword that says,
4939      ; "give me another ConditionState exactly like the previous
4940      ; one, except with different conditions". Useful when you
4941      ; have several states that are the same with only different condition bits.
4942      AliasConditionState = BETWEEN_FIRING_SHOTS_A
4943      AliasConditionState = RELOADING_A
4944  
4945      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
4946      AliasConditionState = MOVING FIRING_A
4947      AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A
4948      AliasConditionState = MOVING RELOADING_A
4949  
4950      ; ------------------ technical with WEAPONSET_CRATEUPGRADE_ONE ------------------------
4951      ConditionState = WEAPONSET_CRATEUPGRADE_ONE
4952        IdleAnimation = UITech_SKL.UITech_STA 0 6
4953        IdleAnimation = UITech_SKL.UITech_IDA
4954        IdleAnimation = UITech_SKL.UITech_IDB
4955        AnimationMode = ONCE
4956        ShowSubObject = 50Cal
4957        WeaponMuzzleFlash = PRIMARY MuzzleFX02
4958        WeaponFireFXBone = PRIMARY Muzzle02
4959        WeaponLaunchBone = PRIMARY Muzzle02
4960      End
4961  
4962      ConditionState = WEAPONSET_CRATEUPGRADE_ONE RUBBLE MOVING TURRET_ROTATE
4963        Animation = None
4964        HideSubObject = UITech-SKN
4965        ShowSubObject = 50Cal
4966        WeaponMuzzleFlash = PRIMARY MuzzleFX02
4967        WeaponFireFXBone = PRIMARY Muzzle02
4968        WeaponLaunchBone = PRIMARY Muzzle02
4969      End
4970  
4971      ConditionState = MOVING WEAPONSET_CRATEUPGRADE_ONE
4972        Animation = UITech_SKL.UITech_MVB
4973        AnimationMode = LOOP
4974        ShowSubObject = 50Cal
4975        WeaponMuzzleFlash = PRIMARY MuzzleFX02
4976        WeaponFireFXBone = PRIMARY Muzzle02
4977        WeaponLaunchBone = PRIMARY Muzzle02
4978      End
4979  
4980      ConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE
4981        Animation = UITech_SKL.UITech_TNA
4982        AnimationMode = LOOP
4983        ShowSubObject = 50Cal
4984        WeaponMuzzleFlash = PRIMARY MuzzleFX02
4985        WeaponFireFXBone = PRIMARY Muzzle02
4986        WeaponLaunchBone = PRIMARY Muzzle02
4987      End
4988      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING
4989      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE FIRING_A
4990      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
4991      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE RELOADING_A
4992      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING FIRING_A
4993      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
4994      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING RELOADING_A
4995  
4996      ConditionState = WEAPONSET_CRATEUPGRADE_ONE FIRING_A
4997        Animation = UITech_SKL.UITech_ATA
4998        AnimationMode = LOOP
4999        ShowSubObject = 50Cal
5000        WeaponMuzzleFlash = PRIMARY MuzzleFX02
5001        WeaponFireFXBone = PRIMARY Muzzle02
5002        WeaponLaunchBone = PRIMARY Muzzle02
5003      End
5004  
5005      ; AliasConditionState is a new keyword that says,
5006      ; "give me another ConditionState exactly like the previous
5007      ; one, except with different conditions". Useful when you
5008      ; have several states that are the same with only different condition bits.
5009      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE BETWEEN_FIRING_SHOTS_A
5010      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE RELOADING_A
5011  
5012      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
5013      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING FIRING_A
5014      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING BETWEEN_FIRING_SHOTS_A
5015      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING RELOADING_A
5016  
5017  
5018      ; ------------------ technical with WEAPONSET_CRATEUPGRADE_TWO ------------------------
5019      ConditionState = WEAPONSET_CRATEUPGRADE_TWO
5020        IdleAnimation = UITech_SKL.UITech_STA 0 6
5021        IdleAnimation = UITech_SKL.UITech_IDA
5022        IdleAnimation = UITech_SKL.UITech_IDB
5023        AnimationMode = ONCE
5024        ShowSubObject = RPG
5025        WeaponFireFXBone = PRIMARY Muzzle03
5026        WeaponLaunchBone = PRIMARY Muzzle03
5027      End
5028  
5029      ConditionState = WEAPONSET_CRATEUPGRADE_TWO RUBBLE MOVING TURRET_ROTATE
5030        Animation = None
5031        HideSubObject = UITech-SKN
5032        ShowSubObject = RPG
5033        WeaponFireFXBone = PRIMARY Muzzle03
5034        WeaponLaunchBone = PRIMARY Muzzle03
5035      End
5036  
5037      ConditionState = MOVING WEAPONSET_CRATEUPGRADE_TWO
5038        Animation = UITech_SKL.UITech_MVB
5039        AnimationMode = LOOP
5040        ShowSubObject = RPG
5041        WeaponFireFXBone = PRIMARY Muzzle03
5042        WeaponLaunchBone = PRIMARY Muzzle03
5043      End
5044  
5045      ConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE
5046        Animation = UITech_SKL.UITech_TNA
5047        AnimationMode = LOOP
5048        ShowSubObject = RPG
5049        WeaponFireFXBone = PRIMARY Muzzle03
5050        WeaponLaunchBone = PRIMARY Muzzle03
5051      End
5052      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING
5053      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE FIRING_A
5054      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
5055      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE RELOADING_A
5056      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING FIRING_A
5057      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
5058      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING RELOADING_A
5059  
5060      ConditionState = WEAPONSET_CRATEUPGRADE_TWO FIRING_A
5061        Animation = UITech_SKL.UITech_ATA
5062        AnimationMode = LOOP
5063        ShowSubObject = RPG
5064        WeaponFireFXBone = PRIMARY Muzzle03
5065        WeaponLaunchBone = PRIMARY Muzzle03
5066      End
5067  
5068      ; AliasConditionState is a new keyword that says,
5069      ; "give me another ConditionState exactly like the previous
5070      ; one, except with different conditions". Useful when you
5071      ; have several states that are the same with only different condition bits.
5072      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO BETWEEN_FIRING_SHOTS_A
5073      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO RELOADING_A
5074  
5075      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
5076      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING FIRING_A
5077      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING BETWEEN_FIRING_SHOTS_A
5078      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING RELOADING_A
5079  
5080    End 
5081    
5082   ; Behavior = CreateObjectDie ModuleTag_13
5083   ;   DeathTypes = NONE +CRUSHED +SPLATTED
5084   ;   CreationList = OCL_TechnicalVan_CrushEffect
5085   ; End
5086  
5087    Geometry = BOX
5088    GeometryMajorRadius = 16.0
5089    GeometryMinorRadius = 8.0
5090    GeometryHeight = 7.5     
5091    GeometryIsSmall = Yes  
5092    
5093  
5094  End
5095  
5096  ;------------------------------------------------------------------------------
5097  ObjectReskin GLAVehicleTechnicalChassisThree GLAVehicleTechnicalChassisOne
5098  
5099    ; *** ART Parameters ***
5100    Draw = W3DTruckDraw ModuleTag_01
5101  
5102      ExtraPublicBone = Dum_Turret 
5103  
5104      DefaultConditionState
5105        Model = UVTechJeep
5106      End
5107  
5108      ConditionState = REALLYDAMAGED
5109        Model = UVTechJeep_d
5110      End
5111      ConditionState = RUBBLE
5112        Model = UVTechJeep_d
5113      End
5114  
5115      OkToChangeModelColor = Yes
5116      TrackMarks = EXTireTrack.tga
5117      Dust = TechnicalDust
5118  
5119      ;DirtSpray = RocketBuggyDirtSpray
5120      PowerslideSpray = RocketBuggyDirtPowerSlide
5121  
5122      ; These parameters are only used if the model has a separate suspension, 
5123      ; and the locomotor has HasSuspension = Yes.
5124      LeftFrontTireBone = Tire01
5125      RightFrontTireBone = Tire02
5126      LeftRearTireBone = Tire03
5127      RightRearTireBone = Tire04
5128      TireRotationMultiplier = 0.2        ; this * speed = rotation.
5129      PowerslideRotationAddition = 2.5    ; This speed is added to the rotation speed when powersliding.
5130    End
5131  
5132    Draw = W3DModelDraw ModuleTag_02
5133      OkToChangeModelColor = Yes
5134      AttachToBoneInAnotherModule = Dum_Turret
5135  
5136      ; ------------------ basic technical ------------------------
5137      DefaultConditionState
5138        Model = UITech_SKN
5139        Turret = Dum-TurManMVR
5140        TurretArtAngle = 180  ; this turret has art pointed 180 degrees backward
5141        HideSubObject = 20Cal 50Cal RPG MuzzleFX01 MuzzleFX02 MuzzleFX03
5142        IdleAnimation = UITech_SKL.UITech_STA 0 6
5143        IdleAnimation = UITech_SKL.UITech_IDA
5144        IdleAnimation = UITech_SKL.UITech_IDB
5145        AnimationMode = ONCE
5146        ShowSubObject = 20Cal
5147        WeaponMuzzleFlash = PRIMARY MuzzleFX01
5148        WeaponFireFXBone = PRIMARY Muzzle01
5149      End
5150  
5151      ConditionState = RUBBLE MOVING TURRET_ROTATE
5152        Animation = None
5153        HideSubObject = UITech-SKN
5154        ShowSubObject = 20Cal
5155        WeaponMuzzleFlash = PRIMARY MuzzleFX01
5156        WeaponFireFXBone = PRIMARY Muzzle01
5157      End
5158  
5159      ConditionState = MOVING
5160        Animation = UITech_SKL.UITech_MVB
5161        AnimationMode = LOOP
5162        ShowSubObject = 20Cal
5163        WeaponMuzzleFlash = PRIMARY MuzzleFX01
5164        WeaponFireFXBone = PRIMARY Muzzle01
5165      End
5166  
5167      ConditionState = TURRET_ROTATE
5168        Animation = UITech_SKL.UITech_TNA
5169        AnimationMode = LOOP
5170        ShowSubObject = 20Cal
5171        WeaponMuzzleFlash = PRIMARY MuzzleFX01
5172        WeaponFireFXBone = PRIMARY Muzzle01
5173      End
5174      AliasConditionState = TURRET_ROTATE MOVING
5175      AliasConditionState = TURRET_ROTATE FIRING_A
5176      AliasConditionState = TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
5177      AliasConditionState = TURRET_ROTATE RELOADING_A
5178      AliasConditionState = TURRET_ROTATE MOVING FIRING_A
5179      AliasConditionState = TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
5180      AliasConditionState = TURRET_ROTATE MOVING RELOADING_A
5181  
5182      ConditionState = FIRING_A
5183        Animation = UITech_SKL.UITech_ATA
5184        AnimationMode = LOOP
5185        ShowSubObject = 20Cal
5186        WeaponMuzzleFlash = PRIMARY MuzzleFX01
5187        WeaponFireFXBone = PRIMARY Muzzle01
5188      End
5189  
5190      ; AliasConditionState is a new keyword that says,
5191      ; "give me another ConditionState exactly like the previous
5192      ; one, except with different conditions". Useful when you
5193      ; have several states that are the same with only different condition bits.
5194      AliasConditionState = BETWEEN_FIRING_SHOTS_A
5195      AliasConditionState = RELOADING_A
5196  
5197      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
5198      AliasConditionState = MOVING FIRING_A
5199      AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A
5200      AliasConditionState = MOVING RELOADING_A
5201  
5202      ; ------------------ technical with WEAPONSET_CRATEUPGRADE_ONE ------------------------
5203      ConditionState = WEAPONSET_CRATEUPGRADE_ONE
5204        IdleAnimation = UITech_SKL.UITech_STA 0 6
5205        IdleAnimation = UITech_SKL.UITech_IDA
5206        IdleAnimation = UITech_SKL.UITech_IDB
5207        AnimationMode = ONCE
5208        ShowSubObject = 50Cal
5209        WeaponMuzzleFlash = PRIMARY MuzzleFX02
5210        WeaponFireFXBone = PRIMARY Muzzle02
5211        WeaponLaunchBone = PRIMARY Muzzle02
5212      End
5213  
5214      ConditionState = WEAPONSET_CRATEUPGRADE_ONE RUBBLE MOVING TURRET_ROTATE
5215        Animation = None
5216        HideSubObject = UITech-SKN
5217        ShowSubObject = 50Cal
5218        WeaponMuzzleFlash = PRIMARY MuzzleFX02
5219        WeaponFireFXBone = PRIMARY Muzzle02
5220        WeaponLaunchBone = PRIMARY Muzzle02
5221      End
5222  
5223      ConditionState = MOVING WEAPONSET_CRATEUPGRADE_ONE
5224        Animation = UITech_SKL.UITech_MVB
5225        AnimationMode = LOOP
5226        ShowSubObject = 50Cal
5227        WeaponMuzzleFlash = PRIMARY MuzzleFX02
5228        WeaponFireFXBone = PRIMARY Muzzle02
5229        WeaponLaunchBone = PRIMARY Muzzle02
5230      End
5231  
5232      ConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE
5233        Animation = UITech_SKL.UITech_TNA
5234        AnimationMode = LOOP
5235        ShowSubObject = 50Cal
5236        WeaponMuzzleFlash = PRIMARY MuzzleFX02
5237        WeaponFireFXBone = PRIMARY Muzzle02
5238        WeaponLaunchBone = PRIMARY Muzzle02
5239      End
5240      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING
5241      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE FIRING_A
5242      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
5243      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE RELOADING_A
5244      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING FIRING_A
5245      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
5246      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING RELOADING_A
5247  
5248      ConditionState = WEAPONSET_CRATEUPGRADE_ONE FIRING_A
5249        Animation = UITech_SKL.UITech_ATA
5250        AnimationMode = LOOP
5251        ShowSubObject = 50Cal
5252        WeaponMuzzleFlash = PRIMARY MuzzleFX02
5253        WeaponFireFXBone = PRIMARY Muzzle02
5254        WeaponLaunchBone = PRIMARY Muzzle02
5255      End
5256  
5257      ; AliasConditionState is a new keyword that says,
5258      ; "give me another ConditionState exactly like the previous
5259      ; one, except with different conditions". Useful when you
5260      ; have several states that are the same with only different condition bits.
5261      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE BETWEEN_FIRING_SHOTS_A
5262      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE RELOADING_A
5263  
5264      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
5265      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING FIRING_A
5266      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING BETWEEN_FIRING_SHOTS_A
5267      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING RELOADING_A
5268  
5269      ; ------------------ technical with WEAPONSET_CRATEUPGRADE_TWO ------------------------
5270      ConditionState = WEAPONSET_CRATEUPGRADE_TWO
5271        IdleAnimation = UITech_SKL.UITech_STA 0 6
5272        IdleAnimation = UITech_SKL.UITech_IDA
5273        IdleAnimation = UITech_SKL.UITech_IDB
5274        AnimationMode = ONCE
5275        ShowSubObject = RPG
5276        WeaponFireFXBone = PRIMARY Muzzle03
5277        WeaponLaunchBone = PRIMARY Muzzle03
5278      End
5279  
5280      ConditionState = WEAPONSET_CRATEUPGRADE_TWO RUBBLE MOVING TURRET_ROTATE
5281        Animation = None
5282        HideSubObject = UITech-SKN
5283        ShowSubObject = RPG
5284        WeaponFireFXBone = PRIMARY Muzzle03
5285        WeaponLaunchBone = PRIMARY Muzzle03
5286      End
5287  
5288      ConditionState = MOVING WEAPONSET_CRATEUPGRADE_TWO
5289        Animation = UITech_SKL.UITech_MVB
5290        AnimationMode = LOOP
5291        ShowSubObject = RPG
5292        WeaponFireFXBone = PRIMARY Muzzle03
5293        WeaponLaunchBone = PRIMARY Muzzle03
5294      End
5295  
5296      ConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE
5297        Animation = UITech_SKL.UITech_TNA
5298        AnimationMode = LOOP
5299        ShowSubObject = RPG
5300        WeaponFireFXBone = PRIMARY Muzzle03
5301        WeaponLaunchBone = PRIMARY Muzzle03
5302      End
5303      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING
5304      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE FIRING_A
5305      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
5306      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE RELOADING_A
5307      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING FIRING_A
5308      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
5309      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING RELOADING_A
5310  
5311      ConditionState = WEAPONSET_CRATEUPGRADE_TWO FIRING_A
5312        Animation = UITech_SKL.UITech_ATA
5313        AnimationMode = LOOP
5314        ShowSubObject = RPG
5315        WeaponFireFXBone = PRIMARY Muzzle03
5316        WeaponLaunchBone = PRIMARY Muzzle03
5317      End
5318  
5319      ; AliasConditionState is a new keyword that says,
5320      ; "give me another ConditionState exactly like the previous
5321      ; one, except with different conditions". Useful when you
5322      ; have several states that are the same with only different condition bits.
5323      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO BETWEEN_FIRING_SHOTS_A
5324      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO RELOADING_A
5325  
5326      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
5327      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING FIRING_A
5328      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING BETWEEN_FIRING_SHOTS_A
5329      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING RELOADING_A
5330  
5331    End  
5332    
5333   ; Behavior = CreateObjectDie ModuleTag_13
5334   ;   DeathTypes = NONE +CRUSHED +SPLATTED
5335   ;   CreationList = OCL_TechnicalJeep_CrushEffect
5336   ; End
5337    
5338    Geometry = BOX
5339    GeometryMajorRadius = 14.0
5340    GeometryMinorRadius = 9.0
5341    GeometryHeight = 9.5     
5342    GeometryIsSmall = Yes    
5343    
5344  
5345  End
5346  
5347  
5348  
5349  
5350  ;------------------------------------------------------------------------------
5351  Object GLALightTank
5352  
5353    ; *** ART Parameters ***
5354    Draw                      = W3DTankDraw ModuleTag_01
5355      OkToChangeModelColor    = Yes
5356      
5357      DefaultConditionState          
5358        Model                 = UVLiteTank
5359        WeaponMuzzleFlash     = PRIMARY MuzzleFX
5360      End
5361  
5362      TrackMarks              = EXTnkTrack.tga
5363      TreadAnimationRate      = 2.0  ; amount of tread texture to move per second
5364      TreadDriveSpeedFraction = 0.3  ; fraction of locomotor speed below which treads stop moving.
5365      TreadPivotSpeedFraction = 0.6  ; fraction of locomotor speed below which we allow pivoting.
5366    End
5367  
5368    ; ***DESIGN parameters ***
5369    DisplayName               = OBJECT:Scorpion
5370    Side                      = GLA
5371    EditorSorting             = VEHICLE
5372    TransportSlotCount        = 3            ;how many "slots" we take in a transport (0 == not transportable)
5373    WeaponSet
5374      Conditions              = None 
5375      Weapon                  = PRIMARY CrusaderTankGun
5376    End
5377    ArmorSet
5378      Conditions    = None
5379      Armor         = TruckArmor
5380      DamageFX      = TankDamageFX
5381    End
5382    BuildCost       = 900
5383    BuildTime       = 10.0          ;in seconds    
5384    VisionRange     = 200
5385    ShroudClearingRange = 200
5386    Prerequisites
5387      Object        = GLAArmsDealer
5388    End
5389  
5390    ExperienceValue = 50 100 150 400    ;Experience point value at each level
5391    ExperienceRequired = 0 150 450 900  ;Experience points needed to gain each level
5392    IsTrainable = Yes             ;Can gain experience
5393    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
5394    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
5395  
5396    ; *** AUDIO Parameters ***
5397  
5398    VoiceSelect     = ScorpionTankVoiceSelect
5399    VoiceMove       = ScorpionTankVoiceMove
5400    VoiceGuard      = ScorpionTankVoiceMove
5401    VoiceAttack     = ScorpionTankVoiceAttack
5402    SoundMoveStart  = ScorpionTankMoveStart
5403    SoundMoveStartDamaged = ScorpionTankMoveStart
5404  
5405    UnitSpecificSounds
5406      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
5407      VoiceCreate     = ScorpionTankVoiceCreate
5408      TurretMoveStart = NoSound
5409      TurretMoveLoop  = TurretMoveLoop
5410      VoiceCrush      = ScorpionTankVoiceCrush
5411      VoiceEnter      = ScorpionTankVoiceMove
5412    End
5413  
5414    ; *** ENGINEERING Parameters ***
5415    RadarPriority     = UNIT
5416    KindOf            = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE
5417    
5418    Body              = ActiveBody ModuleTag_02
5419      MaxHealth       = 200.0
5420      InitialHealth   = 200.0
5421  
5422      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
5423      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
5424      SubdualDamageCap = 400
5425      SubdualDamageHealRate = 500
5426      SubdualDamageHealAmount = 50
5427    End
5428    Behavior = AIUpdateInterface ModuleTag_03
5429      Turret
5430        ControlledWeaponSlots    = PRIMARY
5431      End
5432      AutoAcquireEnemiesWhenIdle = Yes
5433    End
5434    Locomotor       = SET_NORMAL BasicTankLocomotor
5435    Behavior          = PhysicsBehavior ModuleTag_04
5436      Mass            = 40.0
5437    End
5438  
5439    Behavior               = DestroyDie ModuleTag_05
5440      ;nothing
5441    End
5442      
5443    ; A crushing defeat
5444    Behavior             = FXListDie ModuleTag_06
5445      DeathTypes = NONE +CRUSHED +SPLATTED
5446      DeathFX       = FX_CarCrush
5447    End
5448    Behavior             = CreateObjectDie ModuleTag_07
5449      DeathTypes = NONE +CRUSHED +SPLATTED
5450      CreationList  = OCL_CrusaderTank_CrushEffect
5451    End
5452    Behavior             = CreateCrateDie ModuleTag_08
5453      CrateData     = SalvageCrateData
5454      ;CrateData     = EliteTankCrateData
5455      ;CrateData     = HeroicTankCrateData
5456    End
5457  
5458    Behavior = FlammableUpdate ModuleTag_21
5459      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
5460      AflameDamageAmount = 3       ; taking this much damage...
5461      AflameDamageDelay = 500       ; this often.
5462    End
5463  
5464  
5465    Geometry            = BOX
5466    GeometryMajorRadius = 15.0
5467    GeometryMinorRadius = 10.0
5468  
5469    GeometryHeight      = 15.0     
5470    GeometryIsSmall     = Yes
5471    Shadow              = SHADOW_VOLUME
5472    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length    
5473  
5474  End
5475  
5476  
5477  
5478  
5479  ;------------------------------------------------------------------------------
5480  ; Note, this is really a Civ dozer that's used only for eye-candy purposes.
5481  ; It doesn't have mine-disarming ability. It probably shouldn't even have Dozer
5482  ; ability, but I have left that in for now. But don't use this for true Dozer purposes.
5483  ;
5484  Object GLAVehicleDozer
5485  
5486    ; *** ART Parameters ***
5487    SelectPortrait         = SNDozer_L
5488    ButtonImage            = SNDozer
5489    Draw = W3DModelDraw ModuleTag_01
5490      OkToChangeModelColor = Yes
5491      DefaultConditionState
5492        Model = AVCONSTDOZ
5493      End
5494    End
5495  
5496    ; ***DESIGN parameters ***
5497    DisplayName      = OBJECT:Dozer
5498    Side = GLA
5499    EditorSorting   = VEHICLE
5500    TransportSlotCount = 5                 ;how many "slots" we take in a transport (0 == not transportable)
5501    BuildCost       = 100
5502    BuildTime       = 5.0 ;in seconds
5503    VisionRange     = 150
5504    ShroudClearingRange = 300
5505  
5506    ArmorSet
5507      Conditions        = None
5508      Armor             = TankArmor
5509      DamageFX          = TankDamageFX
5510    End
5511    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
5512    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
5513    ;CommandSet      = GLADozerCommandSet
5514  
5515    ; *** AUDIO Parameters ***
5516    SoundMoveStart   = NoSound
5517  
5518    ; *** ENGINEERING Parameters ***
5519    RadarPriority = UNIT
5520    KindOf = PRELOAD VEHICLE SCORE SELECTABLE CAN_CAST_REFLECTIONS DOZER
5521    
5522    Body = ActiveBody ModuleTag_02
5523      MaxHealth       = 1000.0
5524      InitialHealth   = 1000.0
5525    End
5526    Behavior = DozerAIUpdate ModuleTag_03
5527      RepairHealthPercentPerSecond = 2%    ; % of max health to repair each second
5528      BoredTime                    = 5000  ; in milliseconds
5529      BoredRange                   = 150   ; when bored, we look this far away to do something
5530    End
5531    Locomotor                    = SET_NORMAL BasicTankLocomotor
5532    Behavior = PhysicsBehavior ModuleTag_04
5533      Mass = 75.0
5534    End
5535  
5536    Behavior = DestroyDie ModuleTag_05
5537      ;nothing
5538    End
5539      
5540    Behavior = FlammableUpdate ModuleTag_21
5541      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
5542      AflameDamageAmount = 3       ; taking this much damage...
5543      AflameDamageDelay = 500       ; this often.
5544    End
5545  
5546    Geometry = BOX
5547    GeometryMajorRadius = 15.0
5548    GeometryMinorRadius = 10.0
5549    GeometryHeight = 15.0     
5550    GeometryIsSmall = Yes    
5551    Shadow = SHADOW_VOLUME
5552    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
5553  
5554  End
5555  
5556  
5557  
5558  ;------------------------------------------------------------------------------
5559  ;The Marauder Tank, for the Warlord General.  
5560  Object GLATankMarauder
5561  
5562    ; *** ART Parameters ***
5563    SelectPortrait         = SUMarauder_L
5564    ButtonImage            = SUMarauder
5565    
5566    UpgradeCameo1 = Upgrade_GLAToxinShells
5567    UpgradeCameo2 = Upgrade_GLAJunkRepair
5568    ;UpgradeCameo3 = NONE
5569    ;UpgradeCameo4 = NONE
5570    ;UpgradeCameo5 = NONE
5571    
5572    Draw = W3DTankDraw ModuleTag_01
5573      OkToChangeModelColor = Yes
5574  
5575  ; no crate upgrade
5576      ConditionState = NONE
5577        Model = UVMarauder
5578        Turret = Turret
5579        ShowSubObject = Turret
5580        HideSubObject = TurretUp01 TurretUp02 BarrelFX01 ; Since we are showing one of three turrets, we need to then hide the subobject muzzleflash
5581        WeaponFireFXBone = PRIMARY BarrelMS
5582        WeaponRecoilBone = PRIMARY Barrel
5583        WeaponMuzzleFlash = PRIMARY BarrelFX
5584        WeaponLaunchBone = PRIMARY BarrelMS
5585      End
5586  
5587      ConditionState = REALLYDAMAGED
5588        Model = UVMarauder_d
5589        Turret = Turret
5590        ShowSubObject = Turret
5591        HideSubObject = TurretUp01 TurretUp02 BarrelFX01
5592        WeaponFireFXBone = PRIMARY BarrelMS
5593        WeaponRecoilBone = PRIMARY Barrel
5594        WeaponMuzzleFlash = PRIMARY BarrelFX
5595        WeaponLaunchBone = PRIMARY BarrelMS
5596      End
5597  
5598      ConditionState = RUBBLE
5599        Model = UVMarauder_d
5600        Turret = Turret
5601        ShowSubObject = Turret
5602        HideSubObject = TurretUp01 TurretUp02 BarrelFX01
5603        WeaponFireFXBone = PRIMARY BarrelMS
5604        WeaponRecoilBone = PRIMARY Barrel
5605        WeaponMuzzleFlash = PRIMARY BarrelFX
5606        WeaponLaunchBone = PRIMARY BarrelMS
5607      End
5608  
5609  ; crate upgrade 1
5610      ConditionState = WEAPONSET_CRATEUPGRADE_ONE
5611        Model = UVMarauder
5612        Turret = TurretUp01
5613        ShowSubObject = TurretUp01
5614        HideSubObject = Turret TurretUp02 BarrelUp01FX01
5615        WeaponFireFXBone = PRIMARY BarrelUp01MS
5616        WeaponRecoilBone = PRIMARY BarrelUp01
5617        WeaponMuzzleFlash = PRIMARY BarrelUp01FX
5618        WeaponLaunchBone = PRIMARY BarrelUp01MS
5619      End
5620  
5621      ConditionState = REALLYDAMAGED WEAPONSET_CRATEUPGRADE_ONE
5622        Model = UVMarauder_d
5623        Turret = TurretUp01
5624        ShowSubObject = TurretUp01
5625        HideSubObject = Turret TurretUp02 BarrelUp01FX01
5626        WeaponFireFXBone = PRIMARY BarrelUp01MS
5627        WeaponRecoilBone = PRIMARY BarrelUp01
5628        WeaponMuzzleFlash = PRIMARY BarrelUp01FX
5629        WeaponLaunchBone = PRIMARY BarrelUp01MS
5630      End
5631  
5632      ConditionState = RUBBLE WEAPONSET_CRATEUPGRADE_ONE
5633        Model = UVMarauder_d
5634        Turret = TurretUp01
5635        ShowSubObject = TurretUp01
5636        HideSubObject = Turret TurretUp02 BarrelUp01FX01
5637        WeaponFireFXBone = PRIMARY BarrelUp01MS
5638        WeaponRecoilBone = PRIMARY BarrelUp01
5639        WeaponMuzzleFlash = PRIMARY BarrelUp01FX
5640        WeaponLaunchBone = PRIMARY BarrelUp01MS
5641      End
5642  
5643  ; crate upgrade 2
5644      ConditionState = WEAPONSET_CRATEUPGRADE_TWO
5645        Model = UVMarauder
5646        Turret = TurretUp02
5647        ShowSubObject = TurretUp02
5648        HideSubObject = Turret TurretUp01 BarrelUp02FX01 BarrelUp02FX02
5649        WeaponFireFXBone = PRIMARY BarrelUp02MS
5650        WeaponRecoilBone = PRIMARY BarrelUp02
5651        WeaponMuzzleFlash = PRIMARY BarrelUp02FX
5652        WeaponLaunchBone = PRIMARY BarrelUp02MS
5653      End
5654  
5655      ConditionState = REALLYDAMAGED WEAPONSET_CRATEUPGRADE_TWO
5656        Model = UVMarauder_d
5657        Turret = TurretUp02
5658        ShowSubObject = TurretUp02
5659        HideSubObject = Turret TurretUp01 BarrelUp02FX01 BarrelUp02FX02
5660        WeaponFireFXBone = PRIMARY BarrelUp02MS
5661        WeaponRecoilBone = PRIMARY BarrelUp02
5662        WeaponMuzzleFlash = PRIMARY BarrelUp02FX
5663        WeaponLaunchBone = PRIMARY BarrelUp02MS
5664      End
5665  
5666      ConditionState = RUBBLE WEAPONSET_CRATEUPGRADE_TWO
5667        Model = UVMarauder_d
5668        Turret = TurretUp02
5669        ShowSubObject = TurretUp02
5670        HideSubObject = Turret TurretUp01 BarrelUp02FX01 BarrelUp02FX02
5671        WeaponFireFXBone = PRIMARY BarrelUp02MS
5672        WeaponRecoilBone = PRIMARY BarrelUp02
5673        WeaponMuzzleFlash = PRIMARY BarrelUp02FX
5674        WeaponLaunchBone = PRIMARY BarrelUp02MS
5675      End
5676  
5677      TrackMarks = EXTnkTrack.tga
5678      TreadAnimationRate = 2.0;  amount of tread texture to move per second
5679      TreadDriveSpeedFraction = 0.3  ; fraction of locomotor speed below which treads stop moving.
5680      TreadPivotSpeedFraction = 0.6  ; fraction of locomotor speed below which we allow pivoting.
5681  
5682    End
5683  
5684    ; ***DESIGN parameters ***
5685    DisplayName           = OBJECT:Marauder
5686    Side                  = GLA
5687    EditorSorting         = VEHICLE
5688    TransportSlotCount    = 3                 ;how many "slots" we take in a transport (0 == not transportable)
5689    WeaponSet
5690      Conditions = None 
5691      Weapon = PRIMARY MarauderTankGun
5692    End
5693    WeaponSet
5694      Conditions = CRATEUPGRADE_ONE
5695      Weapon = PRIMARY MarauderTankGunUpgradeOne
5696  
5697    End
5698    WeaponSet
5699      Conditions = CRATEUPGRADE_TWO 
5700      Weapon = PRIMARY MarauderTankGunUpgradeTwo
5701    End
5702    ArmorSet
5703      Conditions      = None
5704      Armor           = TankArmor
5705      DamageFX        = TankDamageFX
5706    End
5707    BuildCost       = 800
5708    BuildTime       = 10.0          ;in seconds    
5709    VisionRange     = 125
5710    ShroudClearingRange = 300
5711    Prerequisites
5712      Object = GLAArmsDealer
5713      Science = SCIENCE_MarauderTank
5714    End
5715  
5716    ExperienceValue = 100 100 200 300    ;Experience point value at each level
5717    ExperienceRequired = 0 200 300 600  ;Experience points needed to gain each level
5718    IsTrainable = Yes             ;Can gain experience
5719    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
5720    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
5721    CommandSet           = GLATankMarauderCommandSet
5722  
5723    ; *** AUDIO Parameters ***
5724    VoiceSelect = MarauderTankVoiceSelect
5725    VoiceMove = MarauderTankVoiceMove
5726    VoiceGuard = MarauderTankVoiceMove
5727    VoiceAttack = MarauderTankVoiceAttack
5728    SoundMoveStart = MarauderTankMoveStart
5729    SoundMoveStartDamaged = MarauderTankMoveStart
5730  
5731    UnitSpecificSounds
5732      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
5733      VoiceCreate     = MarauderTankVoiceCreate
5734      ;TurretMoveStart = NoSound
5735      TurretMoveLoop = TurretMoveLoop
5736      VoiceSalvage = MarauderTankVoiceSalvage      
5737      VoiceCrush = MarauderTankVoiceCrush
5738      VoiceEnter = MarauderTankVoiceMove
5739    End
5740  
5741    ; *** ENGINEERING Parameters ***
5742    RadarPriority = UNIT
5743    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS SALVAGER WEAPON_SALVAGER VEHICLE SCORE
5744  
5745    Body = ActiveBody ModuleTag_02
5746      MaxHealth       = 430.0
5747      InitialHealth   = 430.0
5748  
5749      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
5750      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
5751      SubdualDamageCap = 860
5752      SubdualDamageHealRate = 500
5753      SubdualDamageHealAmount = 50
5754    End
5755  
5756    Behavior = AIUpdateInterface ModuleTag_03
5757      AutoAcquireEnemiesWhenIdle = Yes
5758    End
5759    Locomotor = SET_NORMAL MarauderLocomotor
5760    Behavior = PhysicsBehavior ModuleTag_04
5761      Mass = 50.0
5762    End
5763    Behavior = AutoHealBehavior ModuleTag_05
5764      HealingAmount = 2
5765      HealingDelay = 1000 ; msec
5766      TriggeredBy = Upgrade_GLAJunkRepair
5767    End
5768  
5769    ; Catch fire, and explode death
5770    Behavior = SlowDeathBehavior ModuleTag_06
5771      DeathTypes = ALL -CRUSHED -SPLATTED
5772      ProbabilityModifier = 50
5773      DestructionDelay = 1000
5774      DestructionDelayVariance = 300
5775      FX  = INITIAL  FX_CrusaderCatchFire
5776      OCL = FINAL    OCL_MarauderTankDeathEffect  
5777      FX  = FINAL    FX_BattleMasterExplosionOneFinal
5778    End
5779  
5780  
5781    Behavior = CreateCrateDie ModuleTag_07
5782      CrateData = SalvageCrateData
5783      ;CrateData = EliteTankCrateData
5784      ;CrateData = HeroicTankCrateData
5785    End
5786    
5787    Behavior                 = TransitionDamageFX ModuleTag_08
5788      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
5789      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
5790    End
5791    
5792    ; A crushing defeat
5793    Behavior = FXListDie ModuleTag_09
5794      DeathTypes = NONE +CRUSHED +SPLATTED
5795      DeathFX = FX_CarCrush
5796    End
5797  
5798    Behavior = FlammableUpdate ModuleTag_21
5799      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
5800      AflameDamageAmount = 3       ; taking this much damage...
5801      AflameDamageDelay = 500       ; this often.
5802    End
5803  
5804    Geometry = BOX
5805    GeometryMajorRadius = 17.0
5806    GeometryMinorRadius = 10.0
5807    GeometryHeight = 9.5     
5808    GeometryIsSmall = Yes 
5809    Shadow = SHADOW_VOLUME   
5810    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
5811  
5812  End
5813  
5814  
5815  
5816  ;------------------------------------------------------------------------------
5817  ;GLA Radar Van
5818  Object GLAVehicleRadarVan
5819  
5820    ; *** ART Parameters ***
5821    SelectPortrait         = SURadarVan_L
5822    ButtonImage            = SURadarVan
5823    
5824    UpgradeCameo1 = Upgrade_GLARadarVanScan
5825    UpgradeCameo2 = Upgrade_GLAJunkRepair
5826    ;UpgradeCameo3 = NONE
5827    ;UpgradeCameo4 = NONE
5828    ;UpgradeCameo5 = NONE
5829    
5830    Draw = W3DTruckDraw ModuleTag_01
5831      OkToChangeModelColor = Yes
5832  
5833      DefaultConditionState
5834        Model = UVRadarVan
5835        Animation = UVRadarVan.UVRadarVan
5836        AnimationMode = LOOP
5837      End
5838      
5839      ConditionState = REALLYDAMAGED
5840        Model = UVRadarVan_D
5841        Animation = UVRadarVan_D.UVRadarVan_D
5842        AnimationMode = LOOP
5843      End
5844      
5845      ConditionState = RUBBLE
5846        Model = UVRadarVan_D
5847        Animation = UVRadarVan_D.UVRadarVan_D
5848        AnimationMode = LOOP
5849      End
5850      
5851      TrackMarks = EXTireTrack.tga
5852      
5853      ; These parameters are only used if the model has a separate suspension, 
5854      ; and the locomotor has HasSuspension = Yes.
5855      LeftFrontTireBone = Tire01
5856      RightFrontTireBone = Tire02
5857      LeftRearTireBone = Tire03
5858      RightRearTireBone = Tire04
5859      TireRotationMultiplier = 0.2   ; this * speed = rotation.
5860      PowerslideRotationAddition = 2.5   ; This speed is added to the rotation speed when powersliding.
5861    End
5862  
5863    ; ***DESIGN parameters ***
5864    DisplayName      = OBJECT:RadarVan
5865    Side = GLA
5866    EditorSorting   = VEHICLE
5867    TransportSlotCount = 3                 ;how many "slots" we take in a transport (0 == not transportable)
5868    ArmorSet
5869      Conditions      = None
5870      Armor           = TruckArmor
5871      DamageFX        = TankDamageFX
5872    End
5873    BuildCost       = 500
5874    BuildTime       = 10.0          ;in seconds    
5875    VisionRange     = 200
5876    ShroudClearingRange = 500
5877    Prerequisites
5878      Object = GLAArmsDealer
5879    End
5880    IsTrainable = No
5881    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
5882    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
5883    CommandSet      = GLAVehicleRadarVanCommandSet
5884  
5885    ; *** AUDIO Parameters ***
5886    VoiceSelect = RadarVanVoiceSelect
5887    VoiceMove = RadarVanVoiceMove
5888    VoiceAttack = RadarVanVoiceMove
5889    SoundMoveStart = RadarVanMoveStart
5890    SoundMoveStartDamaged = RadarVanMoveStart
5891  
5892    UnitSpecificSounds
5893      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
5894      VoiceCreate     = RadarVanVoiceCreate
5895      TurretMoveStart = NoSound
5896      TurretMoveLoop = TurretMoveLoop  
5897    ; Required for the W3DTruckDraw module
5898      TruckLandingSound = NoSound ;RocketBuggyLand
5899      TruckPowerslideSound = NoSound ;RocketBuggyPowerslide
5900      VoiceCrush      = RadarVanVoiceCrush
5901      VoiceEnter = RadarVanVoiceMove
5902    End
5903  
5904    ; *** ENGINEERING Parameters ***
5905    RadarPriority = UNIT
5906    KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE IGNORES_SELECT_ALL
5907  
5908    Body = ActiveBody ModuleTag_02
5909      MaxHealth       = 200
5910      InitialHealth   = 200
5911  
5912      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
5913      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
5914      SubdualDamageCap = 400
5915      SubdualDamageHealRate = 500
5916      SubdualDamageHealAmount = 50
5917    End
5918  
5919    ExperienceValue     = 20 20 20 20  ; Experience point value at each level
5920  
5921    Behavior = GrantUpgradeCreate ModuleTag_03
5922      UpgradeToGrant     = Upgrade_GLARadar
5923    End
5924    Behavior        = RadarUpgrade ModuleTag_05
5925      TriggeredBy   = Upgrade_GLARadar
5926      DisableProof  = Yes ; Won't be disabled by power low
5927    End
5928  
5929    Behavior           = OCLSpecialPower ModuleTag_06
5930      SpecialPowerTemplate = SpecialPowerRadarVanScan
5931      OCL                  = SUPERWEAPON_RadarVanScan
5932      CreateLocation       = CREATE_AT_LOCATION
5933      StartsPaused         = Yes ; Unpaused by upgrade module
5934    End
5935  
5936    Behavior = UnpauseSpecialPowerUpgrade ModuleTag_07
5937      SpecialPowerTemplate = SpecialPowerRadarVanScan
5938      TriggeredBy = Upgrade_GLARadarVanScan
5939    End
5940  
5941    Behavior = AutoHealBehavior ModuleTag_08
5942      HealingAmount = 2
5943      HealingDelay = 1000 ; msec
5944      TriggeredBy = Upgrade_GLAJunkRepair
5945    End
5946  
5947    Behavior = AIUpdateInterface ModuleTag_09
5948      Turret
5949        TurretTurnRate = 100
5950        ControlledWeaponSlots = PRIMARY
5951      End
5952    End
5953    Locomotor = SET_NORMAL RadarVanLocomotor
5954  
5955    Behavior = PhysicsBehavior ModuleTag_10
5956      Mass = 50.0
5957    End
5958  
5959  ; The default explosion
5960    Behavior = SlowDeathBehavior  ModuleTag_11
5961      DeathTypes = ALL -CRUSHED -SPLATTED
5962      ProbabilityModifier = 5
5963      ModifierBonusPerOverkillPercent = 20%  ; negative means less likely to pick this in the face of much damage, positive means more likely
5964      DestructionDelay = 0
5965      DestructionDelayVariance = 200
5966      FX = FINAL FX_BuggyNewDeathExplosion
5967      OCL = FINAL OCL_RadarVanDeathEffect
5968    End
5969  
5970  
5971    Behavior = FlammableUpdate ModuleTag_13
5972      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
5973      AflameDamageAmount = 3       ; taking this much damage...
5974      AflameDamageDelay = 500       ; this often.
5975    End
5976  
5977    Behavior = DestroyDie ModuleTag_14
5978      DeathTypes = NONE +CRUSHED +SPLATTED
5979    End
5980    Behavior = CreateCrateDie ModuleTag_15
5981      CrateData = SalvageCrateData
5982      ;CrateData = EliteTankCrateData
5983      ;CrateData = HeroicTankCrateData
5984    End
5985  
5986    Behavior = StealthDetectorUpdate ModuleTag_16
5987      DetectionRate   = 500   ; how often to rescan for stealthed things in my sight (msec)
5988      ;DetectionRange = ??? ;Dustin, enable this for independant balancing!
5989      CanDetectWhileGarrisoned  = No ;Garrisoned means being in a structure that you units can shoot out of.
5990      CanDetectWhileContained   = No ;Contained means being in a transport or tunnel network.
5991    End
5992  
5993    ; A crushing defeat
5994    Behavior = FXListDie ModuleTag_17
5995      DeathTypes = NONE +CRUSHED +SPLATTED
5996      DeathFX = FX_CarCrush
5997    End
5998    Behavior = CreateObjectDie ModuleTag_18
5999      DeathTypes = NONE +CRUSHED +SPLATTED
6000      CreationList = OCL_CrusaderTank_CrushEffect
6001    End
6002  
6003    Behavior                 = TransitionDamageFX ModuleTag_19
6004      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
6005      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_CrusaderDamageTransition
6006    End
6007    
6008    Geometry = BOX
6009    GeometryMajorRadius = 16.0
6010    GeometryMinorRadius = 6.0
6011    GeometryHeight = 12.5     
6012    GeometryIsSmall = Yes    
6013    Shadow = SHADOW_VOLUME
6014    ShadowSizeX = 45  ;minimum elevation angle above horizon. Used to limit shadow length
6015  
6016  End
6017  
6018  ;------------------------------------------------------------------------------
6019  Object GLAVehicleBattleBus
6020  
6021    ; *** ART Parameters ***
6022    SelectPortrait         = SUbattlebus_L
6023    ButtonImage            = SUbattlebus
6024    
6025    UpgradeCameo1 = Upgrade_GLAJunkRepair
6026    
6027    
6028    Draw = W3DTruckDraw ModuleTag_01
6029      OkToChangeModelColor = Yes
6030      TrackMarks = EXTireTrack.tga
6031      ExtraPublicBone = BUSUP01
6032      ExtraPublicBone = BUSUP02
6033      
6034      DefaultConditionState
6035        Model = UVBATTBUS
6036        HideSubObject = BUSUP01 BUSUP02
6037        Animation = UVBATTBUS.UVBATTBUS
6038        AnimationMode = MANUAL
6039      End
6040      ConditionState = MOVING
6041        Model = UVBATTBUS
6042        Animation = UVBATTBUS.UVBATTBUS
6043        AnimationMode = LOOP
6044      End
6045  
6046      ConditionState = REALLYDAMAGED
6047        Model = UVBATTBUS_D
6048        Animation = UVBATTBUS_D.UVBATTBUS_D
6049        AnimationMode = MANUAL
6050      End
6051      ConditionState = REALLYDAMAGED MOVING
6052        Model = UVBATTBUS_D
6053        Animation = UVBATTBUS_D.UVBATTBUS_D
6054        AnimationMode = LOOP
6055      End
6056  
6057      ConditionState = SECOND_LIFE ; Set after our first death, natch
6058        Model = UVBATTBUS_D1
6059        Animation = UVBATTBUS_D1.UVBATTBUS_D1
6060        AnimationMode = MANUAL
6061      End
6062      AliasConditionState = REALLYDAMAGED SECOND_LIFE
6063      AliasConditionState = RUBBLE SECOND_LIFE
6064      
6065      ConditionState = RUBBLE
6066        Model = UVBATTBUS_D
6067      End
6068  
6069  ;--------- One crates
6070      ConditionState = ARMORSET_CRATEUPGRADE_ONE
6071        Model = UVBATTBUS
6072        ShowSubObject = BUSUP01
6073        HideSubObject = BUSUP02
6074        Animation = UVBATTBUS.UVBATTBUS
6075        AnimationMode = MANUAL
6076      End
6077      ConditionState = MOVING ARMORSET_CRATEUPGRADE_ONE
6078        Model = UVBATTBUS
6079        ShowSubObject = BUSUP01
6080        HideSubObject = BUSUP02
6081        Animation = UVBATTBUS.UVBATTBUS
6082        AnimationMode = LOOP
6083      End
6084  
6085      ConditionState = REALLYDAMAGED ARMORSET_CRATEUPGRADE_ONE
6086        Model = UVBATTBUS_D
6087        ShowSubObject = BUSUP01
6088        HideSubObject = BUSUP02
6089        Animation = UVBATTBUS_D.UVBATTBUS_D
6090        AnimationMode = MANUAL
6091      End
6092      ConditionState = REALLYDAMAGED MOVING ARMORSET_CRATEUPGRADE_ONE
6093        Model = UVBATTBUS_D
6094        ShowSubObject = BUSUP01
6095        HideSubObject = BUSUP02
6096        Animation = UVBATTBUS_D.UVBATTBUS_D
6097        AnimationMode = LOOP
6098      End
6099  
6100      ConditionState = SECOND_LIFE ARMORSET_CRATEUPGRADE_ONE
6101        Model = UVBATTBUS_D1
6102        ShowSubObject = BUSUP01
6103        HideSubObject = BUSUP02
6104        Animation = UVBATTBUS_D1.UVBATTBUS_D1
6105        AnimationMode = MANUAL
6106      End
6107      AliasConditionState = REALLYDAMAGED SECOND_LIFE ARMORSET_CRATEUPGRADE_ONE
6108      AliasConditionState = RUBBLE SECOND_LIFE ARMORSET_CRATEUPGRADE_ONE
6109      
6110      ConditionState = RUBBLE ARMORSET_CRATEUPGRADE_ONE
6111        Model = UVBATTBUS_D
6112        ShowSubObject = BUSUP01
6113        HideSubObject = BUSUP02
6114      End
6115  
6116  ;--------- Two crates
6117      ConditionState = ARMORSET_CRATEUPGRADE_TWO
6118        Model = UVBATTBUS
6119        ShowSubObject = BUSUP01 BUSUP02
6120        Animation = UVBATTBUS.UVBATTBUS
6121        AnimationMode = MANUAL
6122      End
6123      ConditionState = MOVING ARMORSET_CRATEUPGRADE_TWO
6124        Model = UVBATTBUS
6125        ShowSubObject = BUSUP01 BUSUP02
6126        Animation = UVBATTBUS.UVBATTBUS
6127        AnimationMode = LOOP
6128      End
6129  
6130      ConditionState = REALLYDAMAGED ARMORSET_CRATEUPGRADE_TWO
6131        Model = UVBATTBUS_D
6132        ShowSubObject = BUSUP01 BUSUP02
6133        Animation = UVBATTBUS_D.UVBATTBUS_D
6134        AnimationMode = MANUAL
6135      End
6136      ConditionState = REALLYDAMAGED MOVING ARMORSET_CRATEUPGRADE_TWO
6137        Model = UVBATTBUS_D
6138        ShowSubObject = BUSUP01 BUSUP02
6139        Animation = UVBATTBUS_D.UVBATTBUS_D
6140        AnimationMode = LOOP
6141      End
6142  
6143      ConditionState = SECOND_LIFE ARMORSET_CRATEUPGRADE_TWO
6144        Model = UVBATTBUS_D1
6145        ShowSubObject = BUSUP01 BUSUP02
6146        Animation = UVBATTBUS_D1.UVBATTBUS_D1
6147        AnimationMode = MANUAL
6148      End
6149      AliasConditionState = REALLYDAMAGED SECOND_LIFE ARMORSET_CRATEUPGRADE_TWO 
6150      AliasConditionState = RUBBLE SECOND_LIFE ARMORSET_CRATEUPGRADE_TWO
6151      
6152      ConditionState = RUBBLE ARMORSET_CRATEUPGRADE_TWO
6153        Model = UVBATTBUS_D
6154        ShowSubObject = BUSUP01 BUSUP02
6155      End
6156  
6157      LeftFrontTireBone = Tire01
6158      RightFrontTireBone = Tire04
6159      LeftRearTireBone = Tire02
6160      RightRearTireBone = Tire03
6161      TireRotationMultiplier = 0.2   ; this * speed = rotation.
6162  
6163      Dust = RocketBuggyDust
6164      DirtSpray = RocketBuggyDirtSpray
6165      PowerslideSpray = RocketBuggyDirtPowerSlide
6166  
6167    End
6168    PlacementViewAngle = 180
6169    ; ***DESIGN parameters ***
6170    DisplayName      = OBJECT:BattleBus
6171    Side = GLA
6172    EditorSorting   = VEHICLE
6173    TransportSlotCount = 8                 ;how many "slots" we take in a transport (0 == not transportable)
6174    WeaponSet
6175      Conditions = None 
6176      Weapon = PRIMARY None 
6177    End
6178    WeaponSet
6179      Conditions          = PLAYER_UPGRADE 
6180      Weapon              = PRIMARY     BattleBusPassengerDummyWeapon
6181    End
6182  
6183    ArmorSet
6184      Conditions      = None
6185      Armor           = BattleBusTruckArmor
6186      DamageFX        = TruckDamageFX
6187    End
6188    ArmorSet
6189      Conditions      = SECOND_LIFE ; Set after our first death, natch
6190      Armor           = BattleBusStructureArmorTough
6191      DamageFX        = StructureDamageFX
6192    End
6193  
6194    ArmorSet
6195      Conditions      = CRATE_UPGRADE_ONE
6196      Armor           = BattleBusTruckArmorPlusOne
6197      DamageFX        = TruckDamageFX
6198    End
6199    ArmorSet
6200      Conditions      = CRATE_UPGRADE_ONE SECOND_LIFE ; Set after our first death, natch
6201      Armor           = BattleBusStructureArmorToughPlusOne
6202      DamageFX        = StructureDamageFX
6203    End
6204  
6205    ArmorSet
6206      Conditions      = CRATE_UPGRADE_TWO
6207      Armor           = BattleBusTruckArmorPlusTwo
6208      DamageFX        = TruckDamageFX
6209    End
6210    ArmorSet
6211      Conditions      = CRATE_UPGRADE_TWO SECOND_LIFE ; Set after our first death, natch
6212      Armor           = BattleBusStructureArmorToughPlusTwo
6213      DamageFX        = StructureDamageFX
6214    End
6215  
6216    BuildCost       = 1000
6217    BuildTime       = 15.0          ;in seconds    
6218    VisionRange     = 150 ; Used in attack move targeting
6219    ShroudClearingRange     = 200
6220    Prerequisites
6221      Object = GLAArmsDealer
6222      Object = GLAPalace
6223    End
6224    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
6225    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
6226    CommandSet = GLAVehicleBattleBusCommandSet
6227  
6228    ; *** AUDIO Parameters ***
6229    VoiceSelect = BattleBusVoiceSelect
6230    VoiceMove = BattleBusVoiceMove
6231    VoiceGuard = BattleBusVoiceMove
6232    VoiceAttack = BattleBusVoiceAttack
6233    SoundMoveStart = BattleBusMoveStart
6234    SoundMoveStartDamaged = BattleBusMoveStart
6235    SoundEnter = HumveeEnter
6236    SoundExit = HumveeExit
6237    UnitSpecificSounds
6238      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
6239      VoiceCreate= BattleBusVoiceCreate
6240      TurretMoveStart               = NoSound
6241      TurretMoveLoop                = NoSound
6242      TruckLandingSound             = RocketBuggyLand
6243      TruckPowerslideSound          = NoSound
6244      VoiceUnload                   = BattleBusVoiceUnload
6245    End
6246  
6247    ; *** ENGINEERING Parameters ***
6248    RadarPriority = UNIT
6249    KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS VEHICLE SALVAGER ARMOR_SALVAGER SCORE
6250  
6251    Body = UndeadBody ModuleTag_02 ; Body module that treats the first death as a state change
6252      MaxHealth           = 400.0
6253      InitialHealth       = 400.0
6254  
6255      SecondLifeMaxHealth = 650.0
6256  
6257      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
6258      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
6259      SubdualDamageCap = 750
6260      SubdualDamageHealRate = 500
6261      SubdualDamageHealAmount = 50
6262    End
6263  
6264    IsTrainable = No
6265    ExperienceValue     = 50 50 50 50  ; Experience point value at each level
6266  
6267    Behavior = AIUpdateInterface ModuleTag_04
6268      AutoAcquireEnemiesWhenIdle = No ATTACK_BUILDINGS
6269    End
6270  
6271    Behavior = PhysicsBehavior ModuleTag_05
6272      Mass = 40.0
6273    End
6274  
6275    Behavior = AutoHealBehavior ModuleTag_06
6276      HealingAmount = 2
6277      HealingDelay = 1000 ; msec
6278      TriggeredBy = Upgrade_GLAJunkRepair
6279    End
6280  
6281    Locomotor = SET_NORMAL BattleBusLocomotor
6282  
6283    Behavior = BattleBusSlowDeathBehavior  ModuleTag_08
6284      DeathTypes = ALL -CRUSHED -SPLATTED -EXTRA_4
6285      ProbabilityModifier = 5
6286      ModifierBonusPerOverkillPercent = 20%  ; negative means less likely to pick this in the face of much damage, positive means more likely
6287  
6288      ; Part the first, uses when killed the first time from non-system (unresistable) damage
6289      FXStartUndeath = FX_BattleBusStartUndeath
6290      OCLStartUndeath = OCL_BattleBusStartUndeath
6291      FXHitGround = FX_BattleBusHitGround
6292      OCLHitGround = OCL_BattleBusHitGround
6293      ThrowForce = 100.0
6294      PercentDamageToPassengers = 50%
6295      EmptyHulkDestructionDelay = 1000 ; If non-zero, msec of emptiness before we kill ourselves with Penalty damage
6296  
6297      ; Part the second, normal fields of a SlowDeathBehavior
6298      DestructionDelay = 0
6299      DestructionDelayVariance = 200
6300      FX = FINAL FX_BuggyNewDeathExplosion
6301      OCL = FINAL OCL_BattleBusDeath
6302    End
6303  
6304    Behavior = TransportContain  ModuleTag_10
6305      PassengersAllowedToFire = Yes
6306      Slots             = 8
6307      DamagePercentToUnits = 100%
6308      AllowInsideKindOf  = INFANTRY
6309      ExitDelay = 250
6310      NumberOfExitPaths = 5 ; Defaults to 1.  Set 0 to not use ExitStart/ExitEnd, set higher than 1 to use ExitStart01-nn/ExitEnd01-nn
6311      GoAggressiveOnExit = Yes ; AI Will tell people to set their mood to Aggressive on exiting
6312      WeaponBonusPassedToPassengers = Yes
6313      DelayExitInAir = Yes
6314      ArmedRidersUpgradeMyWeaponSet = Yes
6315    End
6316  
6317  ; Module 11 cut.
6318  ;  Behavior = HordeUpdate ModuleTag_11
6319  ;    RubOffRadius = 150    ; if I am this close to a real hordesman, I will get to be an honorary hordesman
6320  ;    UpdateRate = 1000     ; how often to recheck horde status (msec)
6321  ;    Radius = 75           ; how close other units must be to us to count towards our horde-ness (~30 feet or so)
6322  ;    AlliesOnly = Yes      ; do we only count allies towards horde status? 
6323  ;    ExactMatch = Yes      ; do we only count units of our exact same type towards horde status? (overrides kindof)
6324  ;    Count = 5             ; how many units must be within Radius to grant us horde-ness
6325  ;    Action = HORDE        ; when horde-ing, grant us the HORDE bonus
6326  ;  End
6327  
6328    ; A crushing defeat
6329    Behavior = FXListDie ModuleTag_23
6330      DeathTypes = NONE +CRUSHED +SPLATTED
6331      DeathFX = FX_CarCrush
6332    End
6333    Behavior = CreateObjectDie ModuleTag_24
6334      DeathTypes = NONE +CRUSHED +SPLATTED
6335      CreationList = OCL_CrusaderTank_CrushEffect
6336    End
6337    Behavior = CreateCrateDie ModuleTag_25
6338      CrateData = SalvageCrateData
6339    End
6340    
6341    Behavior = FlammableUpdate ModuleTag_28
6342      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
6343      AflameDamageAmount = 3       ; taking this much damage...
6344      AflameDamageDelay = 500       ; this often.
6345    End
6346  
6347    Behavior = DestroyDie ModuleTag_29
6348      DeathTypes = NONE +CRUSHED +SPLATTED
6349    End
6350  
6351    Behavior = SlowDeathBehavior ModuleTag_30 // Empty Hulk sinking away
6352      DeathTypes = NONE +EXTRA_4
6353  
6354      SinkDelay = 1
6355      SinkRate = 2.5
6356      DestructionDelay = 5000
6357    End
6358  
6359    Behavior                 = TransitionDamageFX ModuleTag_31
6360      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
6361      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
6362    End
6363  
6364    Geometry = BOX
6365    GeometryMajorRadius = 19.0
6366    GeometryMinorRadius = 8.0
6367    GeometryHeight = 11.5     
6368    GeometryIsSmall = No    
6369    Shadow = SHADOW_VOLUME
6370    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
6371  
6372  End
6373  ;------------------------------------------------------------------------------;------------------------------------------------------------------------------
6374  Object GLAVehicleScudLauncherHiDef
6375  
6376    ; *** ART Parameters ***
6377    SelectPortrait         = SUScudLauncher_L
6378    ButtonImage            = SUScudLauncher
6379  
6380    UpgradeCameo1 = Upgrade_GLAJunkRepair
6381    UpgradeCameo2 = Upgrade_GLAAnthraxBeta
6382    ;UpgradeCameo3 = NONE
6383    ;UpgradeCameo4 = NONE
6384    ;UpgradeCameo5 = NONE
6385  
6386    Draw = W3DTruckDraw ModuleTag_01
6387      OkToChangeModelColor = Yes
6388  
6389      ProjectileBoneFeedbackEnabledSlots = PRIMARY SECONDARY ; WeaponLaunchBone will be shown/hidden, not just used for firing offset
6390    
6391      DefaultConditionState
6392        Model = UVScudLchrHD
6393        Turret = TURRET
6394        TurretPitch = TURRETEL
6395        WeaponLaunchBone = PRIMARY WeaponA
6396        WeaponLaunchBone = SECONDARY WeaponA
6397        WeaponHideShowBone = PRIMARY MISSILE
6398        WeaponHideShowBone = SECONDARY MISSILE
6399      End
6400  
6401      ConditionState = REALLYDAMAGED
6402        Model = UVScudLchr_d
6403      End
6404      AliasConditionState = RUBBLE
6405  
6406      TrackMarks = EXTireTrack.tga
6407  
6408      Dust = ScudLauncherDust
6409      DirtSpray = RocketBuggyDirtSpray
6410      PowerslideSpray = RocketBuggyDirtPowerSlide
6411  
6412      ; These parameters are only used if the model has a separate suspension, 
6413      ; and the locomotor has HasSuspension = Yes.
6414      LeftFrontTireBone = Tire01
6415      RightFrontTireBone = Tire05
6416      LeftRearTireBone = Tire04
6417      RightRearTireBone = Tire08
6418      MidLeftFrontTireBone = Tire02
6419      MidRightFrontTireBone = Tire06
6420      MidLeftRearTireBone = Tire03
6421      MidRightRearTireBone = Tire07
6422  
6423      TireRotationMultiplier = 0.2   ; this * speed = rotation.
6424      ;PowerslideRotationAddition = 0.0   ; This speed is added to the rotation speed when powersliding.
6425  
6426    End
6427  
6428  
6429    ; ***DESIGN parameters ***
6430  
6431    DisplayName      = OBJECT:ScudLauncherHiDef
6432    Side = GLAToxinGeneral
6433    EditorSorting   = VEHICLE
6434    TransportSlotCount = 3                 ;how many "slots" we take in a transport (0 == not transportable)
6435    WeaponSet
6436      Conditions = None
6437      ;Weapon = PRIMARY SCUDLauncherGunExplosive
6438      Weapon = PRIMARY SCUDLauncherGunAnthrax
6439      Weapon = SECONDARY SCUDLauncherGunAnthrax
6440      AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI
6441      AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI
6442      PreferredAgainst = SECONDARY INFANTRY
6443      ShareWeaponReloadTime = Yes
6444    End
6445    WeaponSet
6446      Conditions = PLAYER_UPGRADE
6447      ;Weapon = PRIMARY SCUDLauncherGunExplosive
6448      Weapon = PRIMARY Chem_SCUDLauncherGunAnthraxGamma
6449      Weapon = SECONDARY Chem_SCUDLauncherGunAnthraxGamma
6450      AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON
6451      AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI
6452      PreferredAgainst = SECONDARY INFANTRY
6453      ShareWeaponReloadTime = Yes
6454      WeaponLockSharedAcrossSets = Yes ; This set is so similar to the default set that it can hold the weapon lock
6455    End
6456    ArmorSet
6457      Conditions      = None
6458      Armor           = TruckArmor
6459      DamageFX        = TankDamageFX
6460    End
6461    BuildCost       = 1200
6462    BuildTime       = 20.0          ;in seconds    
6463    VisionRange     = 180
6464    ShroudClearingRange = 300
6465    Prerequisites
6466      Object = Chem_GLAArmsDealer
6467      Object = Chem_GLAPalace
6468      Science = SCIENCE_ScudLauncher
6469    End
6470  
6471    ExperienceValue = 50 50 100 150   ;Experience point value at each level
6472    ExperienceRequired = 0 100 200 400  ;Experience points needed to gain each level
6473    IsTrainable = Yes             ;Can gain experience
6474    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
6475    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
6476    CommandSet           = Chem_GLAVehicleScudLauncherCommandSet
6477  
6478    ; *** AUDIO Parameters ***
6479    VoiceSelect = ScudLauncherVoiceSelect
6480    VoiceMove = ScudLauncherVoiceMove
6481    VoiceGuard = ScudLauncherVoiceMove
6482    VoiceAttack = ScudLauncherVoiceAttack
6483    SoundMoveStart = ScudLauncherMoveStart
6484    SoundMoveStartDamaged = ScudLauncherMoveStart
6485    UnitSpecificSounds
6486      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
6487      VoiceCreate       = ScudLauncherVoiceCreate
6488      TurretMoveStart = NoSound
6489      TurretMoveLoop = TurretMoveLoop
6490      TruckLandingSound = NoSound
6491      TruckPowerslideSound = NoSound
6492      VoiceCrush = ScudLauncherVoiceCrush
6493      VoiceEnter = ScudLauncherVoiceMove
6494      VoicePrimaryWeaponMode = ScudLauncherVoiceModeHiEx
6495      VoiceSecondaryWeaponMode = ScudLauncherVoiceModeAnthrax
6496    End
6497  
6498    ; *** ENGINEERING Parameters ***
6499    RadarPriority = UNIT
6500    KindOf = PRELOAD SELECTABLE CAN_ATTACK DONT_AUTO_CRUSH_INFANTRY CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE
6501  
6502    Body = ActiveBody ModuleTag_02
6503      MaxHealth       = 180.0
6504      InitialHealth   = 180.0
6505    End
6506  
6507    Behavior = AIUpdateInterface ModuleTag_03
6508      Turret
6509        TurretTurnRate = 60   ; turn rate, in degrees per sec
6510        TurretPitchRate = 60
6511        FirePitch = 90  ; Instead of aiming pitchwise at the target, it will aim here
6512        AllowsPitch = Yes
6513        ControlledWeaponSlots = PRIMARY SECONDARY
6514      End
6515      AutoAcquireEnemiesWhenIdle = No NotWhileAttacking
6516    End  
6517  
6518    Behavior = CommandButtonHuntUpdate  ModuleTag_04 ; allows use of command button hunt script with this unit. 
6519    End
6520  
6521    Locomotor = SET_NORMAL ScudLauncherLocomotor
6522    Behavior = PhysicsBehavior ModuleTag_05
6523      Mass = 40.0
6524    End
6525  
6526    Behavior = AutoHealBehavior ModuleTag_06
6527      HealingAmount = 2
6528      HealingDelay = 1000 ; msec
6529      TriggeredBy = Upgrade_GLAJunkRepair
6530    End
6531  
6532    Behavior = TransitionDamageFX ModuleTag_08
6533      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01
6534      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_ScudLauncherDamageTransition
6535    End
6536  
6537    ; Catch fire, and explode death
6538    Behavior = SlowDeathBehavior ModuleTag_09
6539      DeathTypes = ALL -CRUSHED -SPLATTED
6540      ProbabilityModifier = 50
6541      DestructionDelay = 2000
6542      DestructionDelayVariance = 300
6543      FX  = INITIAL  FX_CrusaderCatchFire
6544      OCL = FINAL    OCL_SCUDLauncherDeathEffect  
6545      FX  = FINAL    FX_ScudLauncherExplosionOneFinal
6546    End
6547  
6548    ; A crushing defeat
6549    Behavior = FXListDie ModuleTag_10
6550      DeathTypes = NONE +CRUSHED +SPLATTED
6551      DeathFX = FX_CarCrush
6552    End
6553  
6554    Behavior = CreateObjectDie ModuleTag_11
6555      DeathTypes = NONE +CRUSHED +SPLATTED
6556      CreationList = OCL_CrusaderTank_CrushEffect
6557    End
6558  
6559    Behavior = FlammableUpdate ModuleTag_21
6560      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
6561      AflameDamageAmount = 3       ; taking this much damage...
6562      AflameDamageDelay = 500       ; this often.
6563    End
6564  
6565    Behavior = DestroyDie ModuleTag_22
6566      DeathTypes = NONE +CRUSHED +SPLATTED
6567    End
6568  
6569    Behavior = WeaponSetUpgrade ModuleTag_23
6570      TriggeredBy = Chem_Upgrade_GLAAnthraxGamma
6571    End
6572  
6573    Behavior = LockWeaponCreate ModuleTag_24
6574      SlotToLock = PRIMARY ; Prevents indeterminate state plus two unpickable weapons equaling no attack.
6575    End
6576  
6577    Geometry = BOX
6578    GeometryMajorRadius = 14.0
6579    GeometryMinorRadius = 7.0
6580    GeometryHeight = 11.5     
6581    GeometryIsSmall = No
6582    Shadow = SHADOW_VOLUME   
6583    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length 
6584  
6585  End
6586  
6587  
6588  
6589  
6590  
6591  
6592  ;------------------------------------------------------------------------------


Generated: Sat Mar 28 08:18:23 2009 Cross-referenced by PHPXref 0.7